Errors Średniozaawansowany

Używaj rekordów do zwięzłych, niemutowalnych typów odpowiedzi błędów.

✕ 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());
    }
}
Widzisz problem z tym kodem? Daj nam znać.
📏

Zwięzłość

Definiuj typy błędów w 3 liniach zamiast 30.

🔒

Niemutowalny

Dane błędu nie mogą być przypadkowo zmodyfikowane po utworzeniu.

📋

Automatyczny toString

Idealny do logowania — wyświetla wszystkie pola automatycznie.

Stare podejście
Mapa lub rozwlekła klasa
Nowoczesne podejście
Rekordy błędów
Od JDK
16
Poziom trudności
Średniozaawansowany
Odpowiedzi błędów oparte na rekordach
Dostępne

Szeroko dostępne od JDK 16 (marzec 2021)

Rekordy są idealne dla odpowiedzi błędów — są niemutowalne, mają wbudowane equals/hashCode do porównań i toString do logowania. Niestandardowe konstruktory dodają walidację lub wartości domyślne.