Sobes.tech
Junior — Middle

Ce metode pot fi utilizate pentru a captura și trata o eroare de tip panic într-un program?

sobes.tech AI

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