Sobes.tech
Назад к вопросам
Junior — Middle
93

Какими методами можно перехватить и обработать ошибку типа panic в программе?

Ответ от нейросети

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 происходит паника, она будет поймана и обработана, что позволит программе продолжить работу.