com*_*ose 3 java exception-handling
我有以下代码
try{//do something
}
catch (Exception e) {
log.error(e, e);
if (e instanceof RuntimeException) {
throw (RuntimeException) e;
} else {
throw new RuntimeException(e);
}
}
Run Code Online (Sandbox Code Playgroud)
findbugs stataic分析工具会抛出此警告
对于methodX中的所有非空值,instanceof将始终返回true,因为所有RuntimeException都是RuntimeException的实例
我不明白的是它的异常被捕获而不是RuntimeException,为什么这个警告呢?
您也可以尝试以下代码。这将更好地阅读和维护。
try{//do something
}
catch (RuntimeException e) {
throw e;
}
catch (Exception e) {
throw new RuntimeException(e);
}
Run Code Online (Sandbox Code Playgroud)