我对java的异常检查感到困惑
Checked Exception需要在编译时使用try,catch和finally关键字进行处理,否则编译器将标记错误
阅读更多:http://javarevisited.blogspot.com/2013/06/10-java-exception-and-error-interview-questions-answers-programming.html#ixzz3pk6OBSrj
我的问题是:我们都知道" NoSuchMethodExcepion "被检查异常,并且考虑上面的语句,这是否意味着每当我尝试调用一个方法时,我应该使用try,catch来包含调用这样的方法代码
try{
callingMethod();
}
catch(Exception){
}
Run Code Online (Sandbox Code Playgroud)
但事实上,我不需要这样做吗?那么首先给出的陈述的真正含义是什么?谢谢你回答我的问题.
Dan*_*den 10
NoSuchMethodException
是一个子类型ReflectiveOperationException
,因此它只能由使用反射的代码抛出.对于像您的示例那样的常规方法调用,该方法不存在是编译时错误,因此您的代码根本不会编译.
如果使用一个版本的依赖项编译您的类,然后使用不同的版本运行它,则编译时存在的方法可能会消失.在这种情况下,您将在执行代码时获得NoSuchMethodError
(这是一个Error
,而不是一个Exception
).