我看到一个奇怪的行为,我在一个try
块中添加了一些代码,现在由于某种原因我得到了 spotbug 错误REC_CATCH_EXCEPTION
(当没有抛出异常时捕获到异常)。
所以基本上最初,我的代码是这样的:
while (true) {
try {
if (something()) {
doSomething();
} else if (somethingElse()) {
doSomethingElse();
} else {
do();
}
} catch (Exception ex) {
System.out.println(ex.toString());
}
}
当我运行上面的代码时,我没有收到任何 spotbug 错误。但是,当我添加新else if
块时,我得到了REC_CATCH_EXCEPTION
错误。所以我看到错误的新代码是这样的:
while (true) {
try {
if (something()) {
doSomething();
} else if (somethingElse()) {
doSomethingElse();
} else if (someOtherThing()) {
doSomeOtherThing();
} else {
do();
}
} catch (Exception ex) {
System.out.println(ex.toString());
}
}
除了添加方法之外,没有什么真正改变doSomeOtherThing()
。所以我不确定为什么我会看到这个错误。另外,请注意该doSomeOtherThing()
方法不会在其中抛出或捕获任何异常。