不抛出异常时捕获异常

Des*_*PRG 2 java findbugs exception

我有以下代码和findbugs抱怨" Exception is caught when Exception is not thrown"在狡猾的代码下.我不明白如何解决这个问题.getPMMLExportable抛出一个MLPMMLExportException.

public String exportAsPMML(MLModel model) throws MLPmmlExportException {

                Externalizable extModel = model.getModel();

                PMMLExportable pmmlExportableModel = null;

                try {
                    pmmlExportableModel = ((PMMLModelContainer) extModel).getPMMLExportable();
                } catch (MLPmmlExportException e) {
                   throw new MLPmmlExportException(e);
                }
    }
Run Code Online (Sandbox Code Playgroud)

Vih*_*har 8

这是一个非常有名的蠢货警告,

根据官方文件,当这种警告产生时

  • 方法使用捕获异常对象的try-catch块,但不会在try块中抛出异常.
  • 有时当我们catch(Exception e)一次性捕获所有类型的异常时它也会被抛出,它可能会掩盖实际的编程问题,因此findbugs会要求您捕获特定的异常,以便抛出运行时异常来指示编程问题.

为了更多的理解(以及解决方案),您可以查看官方文档.

对于您的情况,似乎try子句中的语句不会抛出您在catch子句中处理的异常

希望这可以帮助!

祝好运!