LINUX.ORG.RU

История изменений

Исправление RedPossum, (текущая версия) :

Дефер есть, его можно приклеить искусственно, только вот в случае с паникой дефер будет всегда, а с err оно не обязательно

Но вот искусственный пример

func hasErr() (res string) {
	defer func() {
		if err := doErr(); err != nil {
			res = "Here's error"
		}
	}()
	return
}

Benchmark_hasErr-4 30000000 53.3 ns/op 0 B/op 0 allocs/op

Все равно существенны быстрее паники

Исходная версия RedPossum, :

Дефер есть, его можно приклеить искусственно, только вот в случае с паникой дефер будет всегда, а с err оно не обязательно