rspec/rules/S1165/java/rule.adoc

54 lines
1011 B
Plaintext
Raw Normal View History

2021-04-28 16:49:39 +02:00
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:
* Will be fully defined at the same time the ``++Exception++`` is instantiated.
* Won't be updated or corrupted by a questionable error handler.
This will enable developers to quickly understand what went wrong.
2021-04-28 16:49:39 +02:00
== Noncompliant Code Example
----
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;
}
}
----
2021-04-28 16:49:39 +02:00
== Compliant Solution
----
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;
}
}
----