Exceções – Item 61

Postado em

do it - procrastination conceptLance exceções apropriadas à abstração

Existem alguns problemas quando uma API lança uma exceção referente à invocação de uma camada de nível inferior:

  • A exceção repassada não tem conexão aparente com a tarefa requisitada a ser executada do ponto de vista da camada invocadora.
  • Exposição detalhes de implementação interna da camada em uso.
  • Poluição da camada invocadora referente aos detalhes de implementação interno da camada em uso.
  • Inflexibilidade na manutenção. Quando detalhes internos de uma camada forem alteradas, resultara em impacto em todas as suas camadas invocadoras.

Portanto, as camadas superiores devem encapsular totalmente os detalhes e situação excepcionais internos, utilizando uma das seguintes abordagens:

  1. Encadeamento de exceções – definir e lançar exceções coerentes com o nível de abstração oferecida, encapsulando os detalhamentos internos. Use o encadeamento de exceções oferecido pela classe Exception.
  2. Contorno Silencioso – tratar as situações excepcionais internos transparentemente para as camadas invocadoras, registrando os ocorridos em um recurso de log apropriado.

Para todas as informações, veja o post inicial

“Pois a nossa pátria está nos céus, de onde também aguardamos o Salvador, o Senhor Jesus Cristo.” Filipenses 3:20

Anúncios