Ответ
В Go нет исключений (exceptions) в классическом понимании, как в Java или Python. Вместо этого Go использует явную обработку ошибок через возвращаемые значения (обычно error тип).
func divide(a, b int) (int, error) {
if b == 0 {
return 0, fmt.Errorf("division by zero")
}
return a / b, nil
}
result, err := divide(10, 0)
if err != nil {
log.Fatal(err)
}
Для критических ситуаций есть panic() и recover(), но их рекомендуется использовать только для фатальных ошибок (например, невозможность продолжить работу).
func safeCall() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Recovered:", r)
}
}()
panic("something went wrong")
}