2015-11-16 3 views
0

У меня есть следующий код, и findbugs жалуется, что «Exception is caught when Exception is not thrown» под изворотливым кодом. Я не понимаю, как это решить. getPMMLExportable throws a 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); 
       } 
    } 
+0

Какой смысл ловить исключение? Вы просто бросаете его снова. Просто удалите try/catch. – MeBigFatGuy

+0

Я добавил его на случай, если я отправлю сообщение, прежде чем исключение будет выброшено – DesirePRG

+0

, тогда вы должны использовать «throw e», – tkruse

ответ

4

Это очень известное предупреждение findbug,

согласно официальной документации такого рода предупреждение генерируется, когда

  • метод использует блок примерочных поймать, что попадается объекты исключений, но Exception не выбрасывается в блок try.
  • иногда он также вызывается, когда мы используем catch(Exception e), чтобы сразу перехватывать все типы исключений, он может маскировать фактические проблемы с программированием, поэтому findbugs запрашивают у вас конкретное исключение, так что могут быть выбраны исключения во время выполнения, которые указывают на проблемы программирования ,

для лучшего понимания (и решения также) вы можете посмотреть на official documentation.

для вашего случая, кажется, что заявления в try статье не выбрасывайте исключение вы обработку в catch пункте

надеюсь, что это помогает!

Удачи вам!

Смежные вопросы