Interface PortadoraDeProblema
- All Known Implementing Classes:
BadRequestException, ConflictException, ForbiddenException, NotFoundException
public interface PortadoraDeProblema
Interface marcadora que uma exceção implementa para carregar a taxonomia de domínio até o
corpo de erro RFC 7807. O
UnifiedErrorResponseProcessor de ponto único lê a causa-raiz
(context.getRootCause()) e, quando ela é uma PortadoraDeProblema, carimba o
code() de máquina e o title() humano no application/problem+json —
em vez de derivar tudo do status HTTP.
É seam marcador (não exceção-base): compõe com a hierarquia de exceção existente do app — quem
já tem uma exceção-base própria só a faz implements PortadoraDeProblema, sem trocar a
herança. As exceções desta lib (NotFoundException, BadRequestException…) já a
implementam com defaults por tipo.
Contrato: o carrier precisa chegar ao pipeline de erro como a causa (estende as exceções
da lib / HttpStatusException, ou o @ExceptionHandler do app preserva a causa) —
senão o processor cai no genérico.
-
Method Summary
-
Method Details
-
code
String code()Código estável legível por máquina (ex.:invalid_token,placa_nao_encontrada), que um consumidor NOSSO usa para ramificar. Deve ser não-branco; nulo/branco → o processor usastatus.name().- Returns:
- o código de máquina do problema.
-
title
Título humano do tipo do problema — estável, não muda de ocorrência para ocorrência (RFC 9457 §3.1.4). O específico da ocorrência fica nodetail. Defaultnull: o processor cai emstatus.getReason().- Returns:
- o título do tipo do problema, ou
nullpara usar a razão do status.
-