Findbugs做出的贡献:方法从没有历史记录的catch块中抛出替代异常

Chr*_*ssy 4 java findbugs

fb-contrib抱怨

方法从没有历史的catch块中抛出替代异常

在我的try / catch块之一中。

如何解决?是否有关于如何解决此问题的详细说明?

Chr*_*ssy 5

捕获原始异常,您的代码将引发另一个异常,而没有将原始异常包括在 java.lang.Throwable cause

在这里找到了一些东西:

此方法捕获一个异常,并引发一个不同的异常,而不合并原始异常。这样做隐藏了异常的原始来源,从而使得调试和解决这些问题变得困难。最好使用这个带有原始异常的新异常的构造函数,以便将此详细信息传递给用户。

FindBugs贡献很大!因此,将原因传递给我们,将其记录下来,...对所捕获的内容进行处理。希望这对某人有帮助。

例:

try {
  ...
} catch (final SomeException theOriginalCause) {
  // throw new SomeOtherException(); // Bad !
  throw new SomeOtherException(theOriginalCause); // Good.
}
Run Code Online (Sandbox Code Playgroud)