Back to questions
Junior — Middle
92
Какими методами можно перехватить и обработать ошибку типа panic в программе?
Answer from AI
sobes.tech AI
В Go для перехвата и обработки ошибки типа panic используется механизм recover вместе с defer. Функция recover позволяет поймать панику и предотвратить аварийное завершение программы.
Пример:
func safeFunction() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Поймана паника:", r)
}
}()
// Код, который может вызвать panic
panic("что-то пошло не так")
}
func main() {
safeFunction()
fmt.Println("Программа продолжает работу")
}
В этом примере defer откладывает выполнение анонимной функции, которая вызывает recover. Если в safeFunction происходит паника, она будет поймана и обработана, что позволит программе продолжить работу.