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

    Modifier and Type
    Method
    Description
    Código estável legível por máquina (ex.: invalid_token, placa_nao_encontrada), que um consumidor NOSSO usa para ramificar.
    default String
    Título humano do tipo do problema — estável, não muda de ocorrência para ocorrência (RFC 9457 §3.1.4).
  • 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 usa status.name().
      Returns:
      o código de máquina do problema.
    • title

      default String 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 no detail. Default null: o processor cai em status.getReason().
      Returns:
      o título do tipo do problema, ou null para usar a razão do status.