Exceptions are meant to represent the application's state at the point at which an error occurred.
Making all fields in an Exception class final ensures that this state:
Exception is instantiated. This will enable developers to quickly understand what went wrong.
public class MyException extends Exception {
private int status; // Noncompliant
public MyException(String message) {
super(message);
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
}
public class MyException extends Exception {
private final int status;
public MyException(String message, int status) {
super(message);
this.status = status;
}
public int getStatus() {
return status;
}
}