Junior — Middle
Milyen módszerekkel lehet elkapni és kezelni a panic típusú hibát egy programban?
sobes.tech MI
Válasz az MI-től
В 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 происходит паника, она будет поймана и обработана, что позволит программе продолжить работу.