Sobes.tech
Senior

// Soru 2. Ekranda ne gösterilecek package main import "fmt" func bbb() { defer func(){ if r := recover(); r != nil{ fmt.Println("Panik işlendi 1 ", r) } }() panic("aaaa") } func main() { defer func(){ if r := recover(); r != nil{ fmt.Println("Panik işlendi 2 ", r) } }() bbb() }

sobes.tech yapay zeka

AI'dan gelen yanıt

В данном коде функция bbb вызывает panic("aaaa"), но перед этим определён defer с анонимной функцией, которая вызывает recover() и обрабатывает панику, выводя сообщение:

Паника обработана 1  aaaa

Поскольку паника обработана внутри bbb, она не распространяется дальше в main, и второй defer с recover в main не срабатывает.

Итоговый вывод на экран будет:

Паника обработана 1  aaaa

Если бы recover в bbb не был, тогда паника дошла бы до main и там была бы обработана с выводом "Паника обработана 2 aaaa".