Tratamento de erros na linguagem Go

    Um erro se refere a uma situação anormal no programa, que faz com que o programa falhe ao executar normalmente.

Visão geral do tratamento de erros

  • Não há como tentar ... pegar em Go
  • A linguagem Go fornece um mecanismo de tratamento de erros muito simples por meio de tipos de erros integrados;
  • O valor do erro pode ser armazenado em uma variável e retornado por uma função;
  • Se uma função ou método retornar um erro, por convenção, ele deve ser o último valor retornado pela função;
  • A maneira idiomática de lidar com erros é comparar o erro retornado com nulo;
  • Um valor nulo significa que não ocorreu nenhum erro e um valor não nulo significa que ocorreu um erro;
  • Se não for nulo, imprima o erro.

A natureza do erro

  • O erro é essencialmente um tipo de interface, que contém um método Error ().
    digite a interface de erro { string de erro () }

  • Qualquer tipo que implemente essa interface pode ser usado como erro. Este método fornece uma descrição do erro de tratamento de erros Go.

Como criar um objeto de erro

1. A função New () no pacote de erros retorna um objeto de erro

  • Crie um novo erro por meio de errors.New ().
package errors
// New returns an error that formats as the given text.
func New(text string) error {
   return &errorString{text}
}
// errorString is a trivial implementation of error.
type errorString struct {
   s string
}
func (e *errorString) Error() string {
   return e.s
}

2. A função Errorf () no pacote fmt retorna um objeto de erro

  • A função Errorf () no pacote fmt essencialmente chama erros.New ()
// Errorf formats according to a format specifier and returns the string
// as a value that satisfies error.
func Errorf(format string, a ...interface{}) error {
	return errors.New(Sprintf(format, a...))
}

3. Crie um erro personalizado

As etapas de implementação são as seguintes:

  • 1. Definir uma estrutura para indicar o tipo de erro autodefinido;
  • 2. O método para fazer com que o tipo de erro personalizado realize a interface de erro: string Error ()
  • 3. Defina uma função que retorne erro. Depende da função real do programa.

O caso é o seguinte:
//myError.go



O efeito é o seguinte:

Figura (1) Mecanismo de tratamento de erros personalizado

Acho que você gosta

Origin blog.csdn.net/sanqima/article/details/108908579
Recomendado
Clasificación