I need to throw RuntimeException
when length of two lists is not equal. We are using SonarQube
tool for code review purpose.
Here is the code:
if (objctArray.length != columnArray.length) {
throw new RuntimeException(String.format("objctArray and columnArray length is not same. objctArray length = %d, columnArray length = %d", objctArray.length, columnArray.length));
}
Now, SonarQube
raises issue that Define and throw a dedicated exception instead of using a generic one.
at throw new RuntimeException
line. I don't know which exception I can replace to resolve SonarQube
issue.
Don't throw generic exceptions. You should be subclassing Exception and then throwing your subclass, so that the type of the exception actually provides information about what is going on, allowing clients of the function to catch and treat it appropriately.
If those two lists are arguments passed to a method,
IllegalArgumentException
would be a good candidate to throw. It's a sub-class ofRuntimeException
, so you'll still be throwing a kind ofRuntimeException
.