error/

directory
v0.0.0-...-280f8e7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 19, 2024 License: CC0-1.0

README

error

Go tem um sistema muito parecido com C de tratamento de erros.

f, err := os.Open("filename.ext")
if err != nil {
    panic(err)
}

Playground

Podemos gerar nossos erros 😄, usando o pacote nativo errors

err := errors.New("Novo erro")

Testando erros

Quando estiver tratando erros não compare strings compare erros, a forma mais simples de fazer isso é instanciando uma variável para conter o erro no inicio package e usar essa instancia nas comparações e retornos.

var ErrPanettoneDeChocolate = errors.New("Panettone tem que ser apenas com passas e frutas cristalizadas")

...

err := p.VerificaPanettone()
if err == ErrPanettoneDeChocolate {
	panic(err)
}

O package os cria seu próprio objeto error para retornar não apenas uma string mas mais informações isso é possível porque error é uma interface e desde que você implemente uma função Error() que retorne uma string você pode fazer qualquer struct ser um objeto error.

if _, err := os.Stat(nomeDoArquivo); err != nil {
    if os.IsNotExist(err) {
        return false
    }
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL