Un error se refiere a una situación anormal en el programa, que hace que el programa no se ejecute normalmente.
Descripción general del manejo de errores
- No hay intento ... atrapar en Go
- Go language proporciona un mecanismo de manejo de errores muy simple a través de tipos de error incorporados;
- El valor de error puede almacenarse en una variable y ser devuelto por una función;
- Si una función o método devuelve un error, por convención, debe ser el último valor devuelto por la función;
- La forma idiomática de manejar los errores es comparar el error devuelto con nil;
- Un valor nulo significa que no ocurrió ningún error, y un valor que no sea nulo significa que ocurrió un error;
- Si no es nulo, imprima el error.
La naturaleza del error
- El error es esencialmente un tipo de interfaz, que contiene un método Error ().
tipo error interfaz { Error () cadena } - Cualquier tipo que implemente esta interfaz se puede utilizar como error. Este método proporciona una descripción de Go error handling-error.
Cómo crear un objeto de error
1. La función New () del paquete de errores devuelve un objeto de error.
- Crea un nuevo error a través de errors.New ().
package errors
// New returns an error that formats as the given text.
func New(text string) error {
return &errorString{text}
}
// errorString is a trivial implementation of error.
type errorString struct {
s string
}
func (e *errorString) Error() string {
return e.s
}
2. La función Errorf () del paquete fmt devuelve un objeto de error.
- La función Errorf () en el paquete fmt esencialmente llama a los errores.
// Errorf formats according to a format specifier and returns the string
// as a value that satisfies error.
func Errorf(format string, a ...interface{}) error {
return errors.New(Sprintf(format, a...))
}
3. Crea un error personalizado
Los pasos de implementación son los siguientes:
- 1. Definir una estructura para indicar el tipo de error autodefinido;
- 2. El método para hacer que el tipo de error personalizado se dé cuenta de la interfaz de error: Cadena de error ()
- 3. Defina una función que devuelva error. Depende de la función real del programa.
El caso es el siguiente:
//myError.go
El efecto es el siguiente: