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