Menu
Coddy logo textTech

Criando Erros Simples

Parte da seção Fundamentos do Journey de GO da Coddy — lição 106 de 109.

Em Go, você pode criar erros personalizados usando a função errors.New() da biblioteca padrão.

Importe o pacote errors:

import (
    "errors"
    "fmt"
)

Crie um erro simples com uma mensagem:

func divide(a, b int) (int, error) {
    if b == 0 {
        return 0, errors.New("cannot divide by zero")
    }
    return a / b, nil
}

func main() {
    result, err := divide(10, 0)
    if err != nil {
        fmt.Println("Error:", err)
    } else {
        fmt.Println("Result:", result)
    }
}

A saída será:

Error: cannot divide by zero
challenge icon

Desafio

Iniciante

Neste desafio, você praticará a criação de um erro simples em Go usando a função errors.New().

Você tem uma função que verifica se um nome de usuário é válido. Um nome de usuário é considerado válido se tiver pelo menos 5 caracteres. Sua tarefa é completar a função retornando um erro apropriado quando o nome de usuário for muito curto.

Folha de consulta

Crie erros personalizados usando errors.New() da biblioteca padrão:

import (
    "errors"
    "fmt"
)

Retorne um erro de uma função:

func divide(a, b int) (int, error) {
    if b == 0 {
        return 0, errors.New("cannot divide by zero")
    }
    return a / b, nil
}

Trate o erro:

result, err := divide(10, 0)
if err != nil {
    fmt.Println("Error:", err)
} else {
    fmt.Println("Result:", result)
}

Experimente você mesmo

package main

import (
	"errors"
	"fmt"
)

func main() {
	// Testar com um nome de usuário válido
	result, err := validateUsername("gopher123")
	if err != nil {
		fmt.Println("Error:", err)
	} else {
		fmt.Println(result)
	}

	// Testar com um nome de usuário inválido
	result, err = validateUsername("go")
	if err != nil {
		fmt.Println("Error:", err)
	} else {
		fmt.Println(result)
	}
}

func validateUsername(username string) (string, error) {
	if len(username) < 5 {
		// TODO: Retornar um erro com a mensagem "username must be at least 5 characters long"
		// Dica: Use errors.New() para criar um novo erro
		return "", nil // Substitua esta linha
	}
	return "Username is valid", nil
}
quiz iconTeste seus conhecimentos

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