首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何解决“定义和抛出专用异常而不是使用泛型异常。”

如何解决“定义和抛出专用异常而不是使用泛型异常。”
EN

Stack Overflow用户
提问于 2016-02-22 07:39:59
回答 2查看 37K关注 0票数 14

当两个列表的长度不相等时,我需要throw RuntimeException。我们正在使用SonarQube工具进行代码评审。

这里是代码:

代码语言:javascript
运行
复制
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问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-22 07:41:36

如果这两个列表是传递给方法的参数,那么IllegalArgumentException将是一个很好的抛出对象。它是RuntimeException的一个子类,所以您仍然会抛出一种RuntimeException

代码语言:javascript
运行
复制
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));
}
票数 15
EN

Stack Overflow用户

发布于 2016-02-22 07:43:40

不要抛出一般的异常。您应该对异常进行子类化,然后抛出您的子类,这样异常的类型实际上提供了有关正在发生的事情的信息,从而允许函数的客户端捕获并适当地对待它。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35548169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档