Senior
¿Cómo crear un error personalizado en Go que se pueda pasar a través de la interfaz error?
sobes.tech AI
Respuesta de la IA
В Go для создания кастомной ошибки нужно определить тип (обычно структуру), который реализует интерфейс error — то есть содержит метод Error() string. Например:
package main
import "fmt"
type MyError struct {
Code int
Message string
}
func (e *MyError) Error() string {
return fmt.Sprintf("Error %d: %s", e.Code, e.Message)
}
func doSomething() error {
return &MyError{Code: 404, Message: "Not Found"}
}
func main() {
err := doSomething()
if err != nil {
fmt.Println(err) // Error 404: Not Found
}
}
Таким образом, кастомная ошибка может содержать дополнительные поля и логику, а благодаря реализации метода Error() она удовлетворяет интерфейсу error и может передаваться и обрабатываться как обычная ошибка.