#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, который «настроен жаловаться» на исключения.