Arquitetura Corporativa para Todos

Artigo / Post

Pare de tratar Exception como algo que ela não é! (Vilão ou Solução?)

As Exceptions muitas vezes, elas são apresentadas fora de contexto.

O Verdadeiro papel

Exception é exatamente o que o nome sugere: uma exceção a um fluxo definido. O desafio está em como você trata e manipula essas exceções. O ponto central é planejar como lidar com elas de forma eficaz.

A realdide nas Aplicações

Toda aplicação está sujeita a fluxos de exceção. O que importa é se o seu fluxo é capaz de manipular e tratar essas exceções, mantendo a estabilidade e a consistência dos resultados.

A falta de conexto

Exception é lenta e cara porque gera informações relevantes sobre o fluxo executado, exigindo a parada do processamento principal para registro de todo o fluxo. Argumentar que Exception é lenta sem contexto é um desserviço, desviando do objetivo principal: tornar sua aplicação resiliente a falhas.

Cada Contexto  nos leva  a uam escolha de pattern.

Contexto é tudo!Não use Exception para controlar fluxos de negócio. Sério mesmo?

Vamos a 2 cenários xomo exemplo

  • Duplicate Key: Um método que grava dados no banco e retorna uma falha de “duplicate key” indica uma falha de lógica ou concorrência. Esse erro permite continuar o fluxo de negócio, se devidamente tratado, garantindo a consistência dos dados subsequentes.
    • Não importa quantas vezes você tente executar provavelmente sempre terá o mesmo resultado.
  • Unable to connect Database: Já uma falha de conectividade e requer um tratamento diferente, pois pode ser uma falha transitória que deve ser tratada para obter sucesso.
    • Existe a possibilidade de ser uma falha transitória que eventualmente pode e deve ser tratada por sua aplicação para obter o sucesso desejado.

Boas Práticas

  • Exceptions disparadas em regras de negócio devem estar relacionadas a falhas sistêmicas de infraestrutura e/ou suas dependências, e não relacionadas à lógica de negócio.
  • Mapear as Exceptions (AggregateException, DivideByZeroException entre todas as outras classes de Exception) para direcionar para as classes Exceptions correta também é recomendado, sendo que ela lhe trará muito mais informações importantes para tratar estes fluxos do que declarar tudo como Exception.
  • Result pattern é uma alternativa, mas lembre-se de aplicá-lo com o contexto adequado.

 

Evite gerar Exception sempre que possível, mas faça isso pelos motivos certos!


Tenham um excelente dia! Eu sou Fernando Cerqueira e entrego estratégias digitais para os desafios do presente, com propostas de inovação para um futuro sustentável.

Compatilhe

0 0 votos
Avaliação Global
0 Comentários
Feedbacks embutidos
Ver todos os comentários
Categorias

Sobre o Autor

Picture of Fernando Cerqueira

Fernando Cerqueira

Eu sou Fernando Cerqueira e entrego estratégias digitais para os desafios do presente, com propostas de inovação para um futuro sustentável. Como arquiteto sênior, aproveito meus mais de 20 anos de experiência em arquitetura e desenvolvimento de software para projetar e implementar soluções baseadas em nuvem que ajudam os clientes a transformar seus negócios com tecnologia.

Outros Posts

Categorias

A Síndrome do Pato Flutuante na Era da IA

Precisamos ser cada vez mais humanos para sermos mais estratégicos com o uso da IA. Delegar para IA : Um caminho Insufiente Muitas empresas estão delegando a adoção de IA para suas áreas de tecnologia. À primeira vista, isso pode parecer lógico, mas será que é suficiente? Os impactos da

IA : Uma sociedade colocada em xeque. “Governando IA para o bem e para todos”

A motivação deste artigo “nasceu” da reflexão sobre o vídeo abaixo (Um robô bípede sendo chutado empurrado em um evento na Ásia). Vídeo : https://www.youtube.com/watch?v=nJoVl-og42M Você sente algum sentimento de desconforto assistindo o vídeo? Por quê ?  Convido você a me acompanhar nesta pequena jornada de reflexão , tomando como

Governança profissional de IA

Introdução Vivenciamos um superciclo tecnológico; uma onda de inovação continua, amplamente difundida que está remodelando a estrutura de como pensamos e agimos. Segundo a explicação “O último superciclo de tecnologia que aconteceu foi a revolução industrial. Mas, diferente da revolução industrial, são três tecnologias de uso geral que estão nesse

Open Finance – Uma análise de estratégia digital

Conceitos Na prática é o compartilhamento de dados de clientes (pessoa física ou jurídica) e de produtos e serviços financeiros onde os clientes terão a liberdade de compartilhar o histórico financeiro. São informações como: contas que foram pagas, o tipo de cartão, limites disponíveis, empréstimos, produtos contratuais entre outros. “Open

"Obter performance é bem mais sobre saber trabalhar com concorrência e como usar de forma consciente os recursos que sobre saber aplicar padrões arquiteturais."

Fernando Cerqueira | Arquiteto Corporativo

Sua Reflexão

0
Adoraria saber sua opinião, comente.x