027 Qualidade Tratamento Erros Dominio Rule
Exige que a lógica de negócio use **exceções (erros)** para relatar problemas, em vez de códigos de retorno ou valores nulos. Exceções devem ser específicas do domínio (ex: `UsuarioNaoEncontradoError`).
Qualidade no Tratamento de Erros: Use Exceções de Domínio
ID: COMPORTAMENTAL-027 Severidade: 🟠 Alta Categoria: Comportamental
O que é
Exige que a lógica de negócio use exceções (erros) para relatar problemas, em vez de códigos de retorno ou valores nulos. Exceções devem ser específicas do domínio (ex: UsuarioNaoEncontradoError).
Por que importa
Códigos de erro ou valores nulos (ex: return null) forçam o cliente a verificar o retorno em cada chamada, espalhando lógica de erro. Exceções garantem que o erro não seja ignorado e fornecem stack trace.
Critérios Objetivos
- [ ] Métodos de negócio (Services, Use Cases) devem retornar tipos válidos ou lançar exceção, proibindo
return nulloureturn undefined. - [ ] É proibido o uso de
catchvazio ou que apenas loga o erro e continua o fluxo (deve relançar ou tratar). - [ ] Exceções lançadas devem ser customizadas para o domínio (ex: estender uma classe
BaseDomainError).
Exceções Permitidas
- Funções de Parse/Utilidade: Funções de baixo nível que podem retornar
nullouundefinedpara indicar falha na leitura ou conversão.
Como Detectar
Manual
Busca por return null, return -1, ou catch (e) {} no código de negócio.
Automático
ESLint: no-return-null, no-empty-catch.
Relacionada com
- 002 - Proibição da Cláusula ELSE: complementa
- 022 - Priorização da Simplicidade e Clareza: reforça
- 028 - Tratamento de Exceção Assíncrona: reforça
- 036 - Restrição de Funções com Efeitos Colaterais: reforça
Criada em: 2025-10-08 Versão: 1.0