我如何捕获NoSuchMethodException?

npo*_*aka 4 java exception-handling exception

我依赖的代码中存在一些不兼容的更改.所以我想捕获NoSuchMethodException以记录有关该问题的更多信息

当我使用它时:

try{
     do.something();      
}catch(NoSuchMethodException e){
     System.out.println("!");
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误"NoSuchMethodException的无法访问的catch块.此异常永远不会从try语句主体抛出"

我试图捕获java.lang.RuntimeException并检查它是否是NoSuchMethod但它不起作用.

反思会导致性能延迟,不想使用它....

有任何想法吗?

Ale*_*exR 7

你很混淆NoSuchMethodException,它只在调用不存在使用反射的方法时抛出,而当你在编译时存在此方法并且在运行时不存在时直接调用方法时可能抛出NoSuchMethodError.通常在编译和运行时使用某些外部库的不同版本时会发生这种情况.

底线:捕获NoSuchMethodError


mat*_*t b 5

赶紧去NoSuchMethodError.然而,这似乎是一个丑陋的解决方法,我建议只是解决不兼容问题.