Sobes.tech
Senior

Qu'est-ce qu'une panique, comment la gérer, peut-on l'attraper?

sobes.tech IA

Réponse de l'IA

В Go panic — это механизм, который вызывается при возникновении критической ошибки, после чего выполнение программы прерывается и начинается процесс отматывания стека вызовов (stack unwinding).

Обрабатывать panic можно с помощью функции recover(), которая позволяет «поймать» панику внутри отложенной функции (defer). Это полезно для предотвращения аварийного завершения программы и для логирования ошибок.

Пример:

func safeCall() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Recovered from panic:", r)
        }
    }()
    panic("something went wrong")
}

Таким образом, panic можно поймать, но рекомендуется использовать его только для действительно исключительных ситуаций, а не для обычной обработки ошибок.