【发布时间】:2012-01-19 05:50:11
【问题描述】:
我正在使用第三方库代码,只调用一种方法。该方法被声明为抛出ZZException,但是在实际环境中运行时,我们发现该方法有时抛出了IOExceoption。
public void TestMethod() throws ZZException
我想知道为什么没有抛出 IOException 的 decalrtion?如果不声明 throw IOException,是否可以抛出 IOException?
顺便说一句,ZZException 是 RuntimeException 的子类
【问题讨论】:
-
您确定抛出的是 IOException 而不是由 IOException 引起的 ZZException(这是合法且推荐的方法)吗?
-
我确定是 IOException 被抛出。
-
ZZException 是 IOException 的子类吗?如果是这样,捕获 IOException 也会捕获 ZZException。这可能是正在发生的事情吗?
-
另外,是来自 SDK 的 java.io.IOException,或者开发人员创建了自己的 IOException 使其成为运行时异常。您可以通过捕获 IOException 来检查它。如果您只能通过 Exception 捕获它和/或从运行时错误继承,这将是一个强烈的信号,这就是他们所做的,而且是一个非常糟糕的主意。
-
如果您只是通过删除敏感信息发布堆栈跟踪,一切都会变得清晰......
标签: java