Lectores como tú ayudan a apoyar a MUO. Cuando realiza una compra utilizando enlaces en nuestro sitio, podemos ganar una comisión de afiliado. Leer más.

El manejo de errores es una de las operaciones frecuentes en el ciclo de desarrollo de software. Es un aspecto crucial de una buena programación. Go adopta un enfoque simple y fácil de usar con su mecanismo incorporado para el manejo de errores. Se basa en la devolución de errores de funciones y métodos, lo que le permite concentrarse en la funcionalidad del código que es intuitiva y fácil de leer.

Maneja los errores en Go explícitamente, lo que da como resultado un marco sólido para la retroalimentación, con la capacidad de implementar la lógica de reintento de manera consistente. El errores El paquete proporciona funcionalidad adicional para el manejo de errores.

El paquete de errores

El paquete de errores es uno de los paquetes en la biblioteca estándar de Go. El paquete proporciona primitivas y funcionalidades simples de manejo de errores para crear y manipular errores de manera consistente en el código Go.

instagram viewer

El paquete proporciona la Nuevo función para crear errores con mensajes de error personalizados que puede usar de la misma manera que cualquier tipo de error integrado, como el nulo y Error metodo de la error interfaz.

El errores El paquete también proporciona funcionalidad para envolver y desenvolver errores, un método para escribir afirmaciones sobre errores.

Puede importar el errores paquete con la palabra clave de importación. Simplemente especifique el nombre del paquete en su lista de importaciones.

importar"errores"

Captura y manejo de errores en Go

El conocimiento del manejo básico de errores en Go sienta las bases para comprender el errores paquete. Las funciones y los métodos devuelven errores que van acompañados de un recurso.

Aquí hay un ejemplo de manejo de errores de una operación de apertura de archivos con el incorporado sistema operativo paquete.

paquete principal

importar (
"fmt"
"os"
)

funciónprincipal() {
archivo, error: = os. Abierto("nombre de archivo.txt")

si error! = nulo {
fmt. Imprimir (err)
}

// ...
}

El Abierto metodo de la sistema operativo paquete es útil cuando trabajar con archivos de texto en Go. Abre un archivo, devolviendo una instancia de archivo abierto y una error.

El valor del error podría ser el nulo escriba, indicando que no hay errores. Sin embargo, puede buscar un caso no nulo y manejar un error si está presente. En el caso anterior, el bloque if imprime el error.

Puedes acceder a la Error método de un error para extraer más información sobre el error (generalmente una descripción).

si error! = nulo {
fmt. Imprimir (err. Error())
}

Por ejemplo, si el archivo no existe, verá un mensaje de error similar a este:

Crear errores en Go

Puede crear errores con el Nuevo metodo de la errores paquete. Este método toma un mensaje de cadena y devuelve los errores encontrados.

importar"errores"

funciónprincipal() {
errar := errores. Nuevo("algo salió mal")

si error! = nulo {
// el código de manejo de errores va aquí
}
}

El principal La función crea un nuevo error y maneja los posibles errores de la creación del error con un si declaración.

También puede definir errores personalizados en Go. El método convencional utiliza una estructura y una función de error para implementar la estructura en función de la funcionalidad del error.

paquete principal

importar"fmt"

tipo error personalizado estructura {
información cadena
}

funciónprincipal() {
// ejemplo de instanciación de la estructura
err := customError{
información: "¡Algo salió mal!",
}

// muestra la instancia de la estructura
fmt. Imprimir (err)
}

El error personalizado struct es el plan para el error, y el información El campo de cadena contendrá el mensaje de error.

Sus funciones de error pueden implementar el error personalizado struct y devuelve una cadena de error.

función(ce customError)Error()cadena {
devolver fmt. Sprintf("Ocurrió un error personalizado: %v", ce.info)
}

El Error metodo de la error personalizado struct devuelve una cadena usando el método de formato Sprintf del paquete fmt.

Errores de empaquetado y desenvuelto en Go

Puede agregar más información contextual a los errores envolviéndolos. Principalmente usará errores envueltos para crear mensajes de error claros para precisión en la depuración.

Puedes usar el errorf metodo de la fmt paquete que proporciona funcionalidad para formatear mensajes de error para envolver errores. El errorf El método toma una cadena y un verbo de formato de cadena y el error y devuelve el error envuelto.

importar (
"fmt"
"os"
)

funciónprincipal() {
_, error: = os. Abierto("nombre de archivo.txt")

si error! = nulo {
envueltoErr := fmt. Errorf("Error al abrir el archivo: %v", errar)
fmt. Println (envueltoErr)
}
}

El principal función abre un archivo con el sistema operativo paquete Abierto y envuelve el error con el método Errorf del fmt paquete. Luego envía el error envuelto a la consola.

Puede desenvolver errores envueltos en sus programas con el Desenvolver metodo de la errores paquete. El Desenvolver El método toma el error envuelto y devuelve el error no envuelto.

importar (
"fmt"
"os"
"errores"
)

funciónprincipal() {
_, error: = os. Abierto("nombre de archivo.txt")

si error! = nulo {
envueltoErr := fmt. Errorf("Error al abrir el archivo: %v", errar)
unwrappedErr := errores. Desenvolver (envueltoErr)
fmt. Println (unwrappedErr)
}
}

El principal función envuelve un error de una operación de apertura de archivo, y el desenvueltoErr variable contiene el error desenvuelto.

Registre sus informes de errores con estos paquetes de registro de terceros

Deberá registrar algunos errores para revisiones posteriores, depuración y otras operaciones durante el proceso de desarrollo de su aplicación. Puedes usar el borrar paquete de paquetes Uber, Logrus, Zerolog y Log15 para un registro rápido y estructurado.