Verificando Erros
Parte da seção Fundamentos do Journey de GO da Coddy — lição 105 de 109.
Em Go, verificamos erros usando instruções if. Esse padrão é extremamente comum.
Verifique se ocorreu um erro usando if err != nil:
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("Error occurred:", err)
return // Interrompe a execução se houver um erro
}
// Continua apenas se não houver erro
fmt.Println("Result:", result)
}A saída será:
Error occurred: cannot divide by zeroDesafio
InicianteEm Go, as funções frequentemente retornam um valor de erro que você precisa verificar antes de usar o resultado. Neste desafio, você praticará a verificação de erros usando a instrução if.
Temos uma função chamada openFile que simula a abertura de um arquivo e retorna um erro se o arquivo não existir. Sua tarefa é verificar se há um erro e imprimir uma mensagem apropriada.
Folha de consulta
Verifique se há erros usando if err != nil:
result, err := someFunction()
if err != nil {
fmt.Println("Error occurred:", err)
return // Pare a execução se houver um erro
}
// Continue apenas se não houver erro
fmt.Println("Result:", result)Experimente você mesmo
package main
import (
"fmt"
)
// Esta função simula a abertura de um arquivo
// Ela retorna um erro se o arquivo não existir
func openFile(filename string) error {
if filename == "data.txt" {
return nil // nil significa que não há erro
} else {
return fmt.Errorf("file %s not found", filename)
}
}
func main() {
filename := "config.txt"
// Chama a função openFile
err := openFile(filename)
// TODO: Verifique se err não é nil (o que significa que houve um erro)
// Se houver um erro, imprima: "Error: " seguido pela mensagem de erro
// Se não houver erro, imprima: "File opened successfully"
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores de Comparação e Lógicos
Operadores de Comparação - Parte 1Operadores de Comparação - Parte 2Operador Lógico ANDOperador Lógico OROperador Lógico NOTFundamentos de Precedência de OperadoresRecapitulação - Fazendo Comparações7Fluxo de Controle: Loops
O Loop `for` ExplicadoLoop For - BásicoLoop For - Apenas CondiçãoA Palavra-chave `break`A Palavra-chave `continue`Loops AninhadosRecapitulação - Repetindo Ações2Variáveis e Tipos de Dados Básicos
O que é uma variávelInferência de Tipo com `:=`Inteiros (int)Números de Ponto FlutuanteBooleanosStringsValores ZeroConstantesConvenções de NomenclaturaRecapitulação - Variáveis e Tipos5Entrada/Saída Básica
Saída FormatadaVerbos de FormataçãoImprimindo TiposObtendo Entrada Básica do UsuárioRecapitulação - Entrada e Saída8Funções
Entendendo FunçõesDeclarando uma FunçãoChamando FunçõesParâmetros de FunçãoRetornando um Único ValorRetornando Múltiplos ValoresValores de Retorno NomeadosFundamentos de Escopo de FunçãoRecapitulação - Criando Código Reutilizável11Tipos Compostos: Slices
Introdução aos SlicesDeclarando Literais de SliceCriando Slices com `make`Comprimento vs Capacidade de SlicesAcessando Elementos de SlicesAdicionando ElementosFatiando Slices/Arrays ExistentesIterando sobre SlicesCopiando SlicesRecapitulação - Listas Dinâmicas14Tratamento de Erros Básico
O Conceito de ErrosA Interface `error`Funções que Retornam ErrosVerificando ErrosCriando Erros SimplesCriando Erros FormatadosTratamento de Erros BásicoRecapitulação - Lidando com Problemas3Operadores Básicos
Operadores AritméticosOperador de DivisãoO Operador MóduloOperador de AtribuiçãoOperadores de Atribuição CompostaIncremento e DecrementoRecapitulação - Cálculos6Fluxo de Controle: Condicionais
A Instrução `if`A Palavra-chave `else`A Palavra-chave `else if`Sombreamento de Variáveis no `if`Inicializando VariáveisA Instrução `switch`Switch com ExpressõesSwitch sem ExpressãoA Palavra-chave `fallthrough`Recapitulação - Tomando Decisões