你误会了。
受检查的异常是在编译时检查的异常(因此称为其名称)。因此,如果您有
doFoo引发异常的方法,则
BarException必须声明该方法引发BarException:
void doFoo() throws BarException { }
未检查的异常是编译器未检查的异常,因此您不必声明抛出它们
说
throw newException()只是抛出一个新的已检查异常实例,或者在RuntimeException情况下未检查。仅当您实际上使用该
throw子句引发了已检查的异常时,检查因素才出现。
至于是否是缺陷,现在这是一个备受争议的话题。使用抛出大量未经检查的异常而不记录它们抛出异常的API会很烦人。但是,有时可能会发生基于应用程序的唯一运行时状态发生的异常,在这种情况下,您无法声明可以抛出某个检查过的异常,而这正是运行时异常发光的地方(例如
NullPointerException)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)