Respostas de erro baseadas em records
Use records para tipos de resposta de erro concisos e imutáveis.
Comparação de Código
✕ Java 8
// Verbose error class
public class ErrorResponse {
private final int code;
private final String message;
// constructor, getters, equals,
// hashCode, toString...
}
✓ Java 16+
public record ApiError(
int code,
String message,
Instant timestamp
) {
public ApiError(int code, String msg) {
this(code, msg, Instant.now());
}
}
Viu um problema com este código? Nos avise.
Por que a forma moderna ganha
Conciso
Defina tipos de erro em 3 linhas em vez de 30.
Imutável
Os dados de erro não podem ser modificados acidentalmente após a criação.
toString automático
Perfeito para logging — exibe todos os campos automaticamente.
Abordagem Antiga
Map ou classe verbosa
Abordagem Moderna
Records de erro
Desde o JDK
16
Dificuldade
Intermediário
Suporte JDK
Respostas de erro baseadas em records
Disponível
Amplamente disponível desde o JDK 16 (março de 2021)
Como funciona
Records são perfeitos para respostas de erro — são imutáveis, possuem equals/hashCode integrados para comparação e toString para logging. Construtores personalizados adicionam validação ou valores padrão.
Documentação Relacionada