Programação Funcional em C# — Parte 03

  • Comumente, podemos notar a utilização do bloco try…catch em camadas de níveis mais alto, como em controllers. Isso se faz na intenção de garantir que nenhuma exceção será estourada, em um determinado fluxo, onde poderá fazer com que sua aplicação “morra”.
  • E, algumas vezes, podemos perceber a utilização do bloco try…catch em níveis mais baixos, como em conexões externas, na intenção de já prevenir algum possível erro já conhecido.
  • O primeiro caso, você corre o risco de perder a rastreabilidade da exceção e não retornar uma mensagem mais plausível/factível para o seu usuário.
  • No segundo caso, você consegue ir um pouco mais além. Além de capturar a exceção em um nível mais baixo e conhecido, você consegue tratá-la (como a implementação de algum retry) e disparar algum retorno compatível com a exceção.
  • Exceções devem ser algo excepcional no seu projeto
  • Exceções devem ser algo sinalizador de bugs
  • Exceções nunca devem ser utilizadas em algo já previamente conhecido (como é o caso do exemplo de validação mostrado acima)
  • Falhar o mais breve possível
  • Interromper imediatamente do fluxo
  • Deixar explícito a falha
Imagem retirada do curso Applying Functional Principles in C#
  • Para realizar tratativas de bibliotecas terceiras, sempre verifique quais tipos possíveis de exceções elas podem lançar (verificando na assinatura do método da biblioteca), para realizar ações específicas.

--

--

Bachelor in Computer Science, MBA in Software Architecture and .NET Developer.

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Alex Alves

Alex Alves

Bachelor in Computer Science, MBA in Software Architecture and .NET Developer.