Menu
Coddy logo textTech

Criando Erros Formatados

Parte da seção Fundamentos do Journey de GO da Coddy. Lição 107 de 109.

Criar Erros Formatados... permite incluir valores dinâmicos em mensagens de erro.

A função fmt.Errorf() cria erros com strings formatadas, de forma semelhante a fmt.Printf():

import (
    "fmt"
)

func divide(a, b int) (int, error) {
    if b == 0 {
        return 0, fmt.Errorf("cannot divide %d by zero", a)
    }
    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 10 by zero
challenge icon

Desafio

Iniciante

Neste desafio, você praticará a criação de mensagens de erro formatadas usando a função fmt.Errorf. Você tem um programa que valida um nome de usuário e precisa criar uma mensagem de erro adequada quando o nome de usuário for inválido.

O programa possui um nome de usuário predefinido que é curto demais (menos de 5 caracteres). Sua tarefa é criar uma mensagem de erro formatada que inclua o nome de usuário inválido e o comprimento mínimo exigido.

Experimente você mesmo

package main

import (
	"fmt"
)

func main() {
	// Nome de usuário predefinido que é curto demais
	username := "bob"
	// Comprimento mínimo exigido
	minLength := 5
	
	// Verifica se o nome de usuário é válido
	if len(username) < minLength {
		// TODO: Crie um erro formatado usando fmt.Errorf que inclua:
		// 1. O nome de usuário inválido
		// 2. O comprimento mínimo exigido
		// Exemplo de formato: "invalid username: [username] is too short, minimum length is [minLength]"
		err := // Seu código aqui
		
		// Imprime o erro
		fmt.Println(err)
	} else {
		fmt.Println("Username is valid!")
	}
}
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

Pratique por conta própria: Compilador de Go online