Comprobación de errores
Parte de la sección Fundamentos del Journey de GO de Coddy — lección 105 de 109.
En Go, verificamos los errores usando sentencias if. Este patrón es extremadamente común.
Comprueba si ocurrió un error usando if err != nil:
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("Error occurred:", err)
return // Detener la ejecución si hay un error
}
// Continuar solo si no hay error
fmt.Println("Result:", result)
}La salida será:
Error occurred: cannot divide by zeroDesafío
PrincipianteEn Go, las funciones a menudo devuelven un valor de error que necesitas verificar antes de usar el resultado. En este desafío, practicarás la verificación de errores utilizando la sentencia if.
Tenemos una función llamada openFile que simula la apertura de un archivo y devuelve un error si el archivo no existe. Tu tarea es verificar si hay un error e imprimir un mensaje apropiado.
Hoja de referencia
Verifica si hay errores usando if err != nil:
result, err := someFunction()
if err != nil {
fmt.Println("Error occurred:", err)
return // Detener la ejecución si hay un error
}
// Continuar solo si no hay error
fmt.Println("Result:", result)Pruébalo tú mismo
package main
import (
"fmt"
)
// Esta función simula la apertura de un archivo
// Devuelve un error si el archivo no existe
func openFile(filename string) error {
if filename == "data.txt" {
return nil // nil significa que no hay error
} else {
return fmt.Errorf("file %s not found", filename)
}
}
func main() {
filename := "config.txt"
// Llamar a la función openFile
err := openFile(filename)
// TODO: Comprobar si err no es nil (lo que significa que hubo un error)
// Si hubo un error, imprimir: "Error: " seguido del mensaje de error
// Si no hubo error, imprimir: "File opened successfully"
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores de comparación y lógicos
Operadores de comparación - Parte 1Operadores de comparación - Parte 2Operador lógico ANDOperador lógico OROperador lógico NOTConceptos básicos de precedencia de operadoresResumen: Realizar comparaciones7Flujo de control: Bucles
Explicación del bucle `for`Bucle `for` - BásicoBucle `for` - Solo condiciónLa palabra clave `break`La palabra clave `continue`Bucles anidadosResumen - Repetición de acciones2Variables y tipos de datos básicos
¿Qué es una variable?Inferencia de tipos con `:=`Enteros (int)Números de punto flotanteBooleanosStringsValores ceroConstantesConvenciones de nomenclaturaResumen - Variables y tipos5Entrada y salida básica
Salida con formatoVerbos de formatoImpresión de tiposObtener entrada básica del usuarioResumen: Entrada y salida8Funciones
Comprendiendo las funcionesDeclaración de una funciónLlamada a funcionesParámetros de funciónRetorno de un solo valorRetorno de múltiples valoresValores de retorno con nombreConceptos básicos del alcance de las funcionesResumen: Creando código reutilizable11Tipos compuestos: Slices
Introducción a los SlicesDeclaración de literales de SliceCreación de Slices con `make`Longitud vs. Capacidad de un SliceAcceso a los elementos del SliceAñadir elementosSlicing de Slices/Arrays existentesIterar sobre SlicesCopiar SlicesResumen - Listas dinámicas14Manejo básico de errores
El concepto de erroresLa interfaz `error`Funciones que devuelven erroresComprobación de erroresCreación de errores simplesCreación de errores con formatoManejo básico de erroresResumen: Manejo de problemas3Operadores básicos
Operadores aritméticosOperador de divisiónEl operador móduloOperador de asignaciónOperadores de asignación compuestaIncremento y decrementoResumen - Cálculos6Flujo de control: Condicionales
La sentencia `if`La palabra clave `else`La palabra clave `else if`Sombreado de variables en `if`Inicialización de variablesLa sentencia `switch``switch` con expresiones`switch` sin expresiónLa palabra clave `fallthrough`Resumen: Toma de decisiones