Этот вопрос проверяет понимание подхода Go к обработке ошибок и отличие от других языков, таких как Java или Python.
В Go нет исключений в привычном смысле. Вместо них используется возвращение ошибок из функций. Для критических ситуаций предусмотрены panic и recover.
Go придерживается простого подхода: функция возвращает значение ошибки как второй результат. Обработка ошибок делается явно, без try-catch.
Пример:
func divide(a, b int) (int, error) {
if b == 0 {
return 0, errors.New("division by zero")
}
return a / b, nil
}panic/recover:
panic — вызывает аварийное завершение программы.
recover — позволяет перехватить панику и восстановить выполнение.
Когда использовать:
error — для ожидаемых ситуаций (некорректные данные, отсутствующие файлы).
panic — для критических ошибок (например, неверная логика или ошибки внутри библиотеки).