Back to questions
МВидео
Middle+
3
Что такое паника в Go?
Companies where asked
Answer from AI
sobes.tech AI
Паника (panic) в Go — это механизм обработки критических ошибок, при которых выполнение программы немедленно прерывается. Паника вызывается функцией panic(), и она приводит к остановке текущей горутины и запуску процесса отмотки стека (stack unwinding), во время которого вызываются отложенные функции (defer).
Паника используется для сигнализации о непредвиденных ошибках, от которых программа не может или не должна восстанавливаться самостоятельно.
Пример использования panic:
func divide(a, b int) int {
if b == 0 {
panic("деление на ноль")
}
return a / b
}
func main() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Восстановились после паники:", r)
}
}()
fmt.Println(divide(10, 2)) // 5
fmt.Println(divide(10, 0)) // вызовет panic
fmt.Println("Этот код не выполнится")
}
Здесь recover() позволяет перехватить панику и продолжить выполнение программы. Паника — это более жесткий способ обработки ошибок по сравнению с возвращаемыми значениями ошибок.