当两个列表的长度不相等时,我需要throw RuntimeException
。我们正在使用SonarQube
工具进行代码评审。
这里是代码:
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));
}
现在,SonarQube
提出了Define and throw a dedicated exception instead of using a generic one.
在throw new RuntimeException
行上的问题。我不知道可以替换哪个异常来解决SonarQube
问题。
发布于 2016-02-22 07:41:36
如果这两个列表是传递给方法的参数,那么IllegalArgumentException
将是一个很好的抛出对象。它是RuntimeException
的一个子类,所以您仍然会抛出一种RuntimeException
。
if (objctArray.length != columnArray.length) {
throw new IllegalArgumentException(String.format("objctArray and columnArray length is not same. objctArray length = %d, columnArray length = %d", objctArray.length, columnArray.length));
}
发布于 2016-02-22 07:43:40
不要抛出一般的异常。您应该对异常进行子类化,然后抛出您的子类,这样异常的类型实际上提供了有关正在发生的事情的信息,从而允许函数的客户端捕获并适当地对待它。
https://stackoverflow.com/questions/35548169
复制相似问题