Junior — Middle
Quali metodi possono essere usati per intercettare e gestire un errore di tipo panic in un programma?
sobes.tech AI
Risposta dell'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 происходит паника, она будет поймана и обработана, что позволит программе продолжить работу.