rspec/rules/S1165/java/rule.adoc
2022-02-04 16:28:24 +00:00

71 lines
1.3 KiB
Plaintext

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.
== Noncompliant Code Example
[source,java]
----
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;
}
}
----
== Compliant Solution
[source,java]
----
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;
}
}
----
ifdef::env-github,rspecator-view[]
'''
== Implementation Specification
(visible only on this page)
include::message.adoc[]
'''
== Comments And Links
(visible only on this page)
include::comments-and-links.adoc[]
endif::env-github,rspecator-view[]