Какова конфигурация для уведомления о необработанных исключениях в Eclipse?

#java #eclipse #exception

#java #eclipse #исключение

Вопрос:

когда в eclipse я использую метод, который генерирует исключение, он обычно жалуется, если он не окружен try / catch или если исключение не генерируется снова. Но для некоторых исключений (например, Integer.parseInt(строка)) eclipse не будет жаловаться.

Как мне настроить eclipse на подачу жалобы на все необработанные исключения??

Спасибо!

Ответ №1:

Простой ответ заключается в том, что вы не можете.

Более длинный ответ:

  • Проверенные и непроверенные исключения являются фундаментальной частью языка Java.

  • В обязанности компилятора Eclipse не входит выдавать ошибки компиляции или предупреждения для допустимой и вполне приемлемой Java.

  • Вы бы тоже этого не хотели, учитывая, что большинство операторов могут (теоретически) генерировать или распространять исключения, такие как NullPointerException , ArrayIndexOutOfBoundsException , OutOfMemoryError и так далее.

Да, есть одна или две «ошибки»… например, NumberFormatException быть непроверенным исключением… но лучшим способом справиться с этим было бы (например) запустить PMD с некоторыми пользовательскими правилами для выявления исключений, которые «должны быть» обработаны как проверенные.

Ответ №2:

Это поведение определяется определением языка Java. Существует два типа исключений: Исключения должны быть перехвачены, исключения RuntimeExceptions могут возникать, но не требуют блокировки try / catch.

Ответ №3:

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

Ответ №4:

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

В Java проверяются все Throwable , кроме подклассов RuntimeException и Error .

Ответ №5:

Компилятор жалуется, только если проверенные исключения не обрабатываются. Здесь ожидается, что Integer.parseInt(строка) вызовет исключение numberformatexception, которое не установлено или является исключением во время выполнения.Поскольку это не соответствует требованиям.

Ответ №6:

Это не eclipse, который «настроен жаловаться» на исключения.

Смотрите Проверенные и непроверенные исключения в Java.