Есть ли способ сделать отчет о затмении общим "catch (Exception e)" как ошибку / предупреждение (в java)? - PullRequest
4 голосов
/ 19 апреля 2010

Я пытаюсь поощрить лучшую практику не перехватывать общие исключения в коде Java. например:

try {
  ...
} catch (Exception e) {  // bad!
  ...
}

Есть ли способ пометить это как ошибку / предупреждение в Eclipse?

Я знаю, что PMD подхватит это, но я бы предпочел не интегрировать его в среду сборки каждого.

Ответы [ 4 ]

7 голосов
/ 19 апреля 2010

Вы можете использовать Checkstyle плагин eclipse, чтобы сделать то же самое. Проверьте раздел «IllegalCatch» в документации

3 голосов
/ 19 апреля 2010

Запуск FindBugs, CheckStyle или PMD в каждой сборке замедлит все сборки, и я думаю, именно поэтому вы смотрите на подход Eclipse. К сожалению, это также может быть проблематичным, в зависимости от доступности (и надежности) плагинов. Кроме того, вы по-прежнему будете испытывать снижение производительности в инкрементных и (особенно) полных сборках проектов.

Другой альтернативой может быть настройка сервера непрерывной интеграции Hudson и его настройка на запуск средств проверки стиля, инструментов покрытия и т. Д., Отслеживание результатов с течением времени с помощью плагина Sonar .

3 голосов
/ 19 апреля 2010

FindBugs может сообщить об этом:

REC: Exception ловится, когда Exception не брошено (REC_CATCH_EXCEPTION)

Этот метод использует блок try-catch, который перехватывает Exception объекты, но Exception не выбрасывается в блоке try, а RuntimeException явно не перехватывается. Распространенный шаблон ошибок - сказать try { ... } catch (Exception e) { something } как сокращение для перехвата нескольких типов исключений, каждый из которых блоки захвата идентичны, но эта конструкция также случайно также перехватывает RuntimeException, маскируя потенциальные ошибки.

0 голосов
/ 19 апреля 2010

Насколько я могу судить, его нет в списке в Window -> Preferences -> Java -> Compiler -> Errors / Warnings, и, следовательно, это невозможно - если вы не хотите писать свой собственный плагин ecliple.

...