fas*_*sth 2 java exception-handling findbugs exception
我有一些应该从抛出的 InvocationTargetException 中检索的自定义异常,我按以下方式进行:
try {
...
}
catch (IllegalAccessException | InvocationTargetException
| NoSuchMethodException | NoSuchFieldException e) {
if (e.getCause() instanceof CustomException) {
throw (CustomException) e.getCause();
}
throw new IllegalArgumentException();
}
Run Code Online (Sandbox Code Playgroud)
但是 findbugs 向我抱怨:
来自 Throwable 的未经检查/未经确认的演员表
我发现了一个 silimar 问题(如何解决 dodgy:unchecked/unconfirmed cast in sonar?),但它没有帮助。
我认为如果您首先将原因分配给局部变量,FindBugs 将能够正确解决问题:
try {
/* ... */
} catch (IllegalAccessException | InvocationTargetException
| NoSuchMethodException | NoSuchFieldException e) {
Throwable cause = e.getCause();
if (cause instanceof CustomException) {
throw (CustomException) cause;
}
throw new IllegalArgumentException();
}
Run Code Online (Sandbox Code Playgroud)