tgoop.com/go_interview_lib/440
Create:
Last Update:
Last Update:
💬 Как в Go вернуть из функции ошибку, не импортируя дополнительных пакетов, даже стандартных?
📌 Простой пример:
package main
// CustomError определяет структуру для ошибки
type CustomError struct {
message string
}
// Error реализует интерфейс error для CustomError
func (e *CustomError) Error() string {
return e.message
}
// Функция, которая может вернуть ошибку
func divide(a, b float64) (float64, *CustomError) {
if b == 0 {
// Создание и возврат ошибки
return 0, &CustomError{message: "division by zero"}
}
return a / b, nil
}
func main() {
result, err := divide(4, 0)
if err != nil {
// Обработка ошибки
println("Error:", err.Error())
} else {
println("Result:", result)
}
}
🔷 Структура
CustomError
содержит одно поле message
типа string
, которое будет хранить сообщение об ошибке.🔷 Метод
Error
возвращает сообщение об ошибке. Это позволяет CustomError
удовлетворять интерфейсу error
.🔷 Функция принимает два параметра типа
float64 и
возвращает два значения: результат типа float64
и ошибку типа *CustomError
.🔷 Если второй аргумент
b
равен нулю, создается и возвращается ошибка с помощью CustomError
.🔷 Результат и ошибка, возвращаемые функцией, проверяются. Если ошибка существует, она обрабатывается (в данном случае выводится на экран с помощью
println
). Если ошибки нет, выводится результат деления.BY Библиотека Go для собеса | вопросы с собеседований
Share with your friend now:
tgoop.com/go_interview_lib/440