Назад к вопросам
Avito
Junior — Middle
83
В курсе ли вы, что такое исключения (Exception) в языке Go?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В языке Go нет традиционных исключений (Exception), как в Java или Python. Вместо этого Go использует возвращаемые значения для обработки ошибок — функция возвращает значение ошибки (error), которое нужно проверить.
Однако в Go есть механизм паники (panic) и восстановления (recover), который можно рассматривать как аналог исключений, но он предназначен для критических ошибок и не должен использоваться для обычной обработки ошибок.
Пример обработки ошибки в Go:
func divide(a, b int) (int, error) {
if b == 0 {
return 0, fmt.Errorf("деление на ноль")
}
return a / b, nil
}
result, err := divide(10, 0)
if err != nil {
fmt.Println("Ошибка:", err)
} else {
fmt.Println("Результат:", result)
}
Использование panic/recover:
func mayPanic() {
panic("что-то пошло не так")
}
func main() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Восстановились после паники:", r)
}
}()
mayPanic()
fmt.Println("Этот код не выполнится")
}