Что выведет: func f() { defer func() { fmt.Println(recover()) }(); panic("oops"); fmt.Println("after panic") }?

Junior
163 просмотров
AFK Offer AI

Выведет "oops". После panic выполняются deferred функции. recover() в defer ловит panic и возвращает значение ("oops"). "after panic" никогда не выполнится — panic прерывает нормальное выполнение. Функция возвращается нормально после recover. Если бы recover не было — panic пробросилась бы выше и крашнула программу.

Следующий вопрос

Как спроектировать job queue с приоритетами на Go?