Error

Há grande sabedoria em esperar pelo inesperado também.

Subtipos padrão

Enquanto alguns erros genéricos, como problemas de sintaxe, importações inválidas, etc. são gerados com o tipo base Error, outros são subtipados:

  • KeyError: a chave (nome) não é encontrada no escopo
  • IndexError: o índice está fora dos limites da lista/texto
  • CallError: uma chamada é feita com argumentos insuficientes
  • TypeError: inconsistência de tipo em chamada, retorno ou atribuição de método
  • AssignError: atribuindo um novo valor a uma entrada imutável
  • ValueError: tipo pode estar correto, mas conteúdo não é aceito

Comparações

Erros sempre avaliam como falso:

Error() ? 'é verdadeiro' : 'é falso'  # é falso

Erros são comparáveis ​​ao seu tipo:

Error() == Error  # verdadeiro

leia também a sintaxe de comparação de tipo

Uma maneira ingênua de lidar com erros poderia ser:

_ <- fat.console
# lidando com o erro retornado
maybeFail() <= Error => log('um erro aconteceu')
_                    => log('sucesso')

isso só funciona se a opção -e / continuar em caso de erro estiver definida

Embora a abordagem ingênua possa funcionar, é difícil saber onde os erros surgirão. Portanto, uma maneira mais adequada de lidar com erros é definindo um manipulador de erro usando o método trapWith encontrado na biblioteca failure.

Veja também

results matching ""

    No results matching ""