29 lines
1.1 KiB
Plaintext
29 lines
1.1 KiB
Plaintext
=== Exceptions
|
|
|
|
``++InterruptedException++``, ``++NumberFormatException++``, ``++DateTimeParseException++``, ``++ParseException++`` and ``++MalformedURLException++`` exceptions are arguably used to indicate nonexceptional outcomes. Similarly, handling ``++NoSuchMethodException++`` is often required when dealing with the Java reflection API.
|
|
|
|
Because they are part of Java, developers have no choice but to deal with them. This rule does not verify that those particular exceptions are correctly handled.
|
|
|
|
|
|
----
|
|
int myInteger;
|
|
try {
|
|
myInteger = Integer.parseInt(myString);
|
|
} catch (NumberFormatException e) {
|
|
// It is perfectly acceptable to not handle "e" here
|
|
myInteger = 0;
|
|
}
|
|
----
|
|
|
|
Furthermore, no issue will be raised if the exception message is logged with additional information, as it shows that the developer added some context to the error message.
|
|
|
|
|
|
----
|
|
try {
|
|
/* ... */
|
|
} catch (Exception e) {
|
|
String message = "Exception raised while authenticating user: " + e.getMessage();
|
|
LOGGER.warn(message); // Compliant - exception message logged with some contextual information
|
|
}
|
|
----
|