Sobes.tech
Junior — Middle

¿Qué métodos se pueden usar para capturar y manejar un error de tipo panic en un programa?

sobes.tech AI

Respuesta de la IA

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