В {рабочем пространстве-каталоге} /. Metadata / .plugins / org.eclipse.core.runtime / .settings удалите следующие два файла:
Перезапустить Eclipse
Ошибки не следует обнаруживать или обрабатывать (за исключением самых редких случаев). Исключения - это основа обработки исключений. Javadoc хорошо это объясняет: разумное приложение не должно пытаться поймать. Большинство таких ошибок ненормальны условий.
Посмотрите на несколько подклассов Error
, взяв некоторые из их комментариев JavaDoc:
AnnotationFormatError
- Выдается, когда анализатор аннотаций пытается прочитать аннотацию из файла класса и определяет, что аннотация имеет неправильный формат. AssertionError
- Брошено, чтобы указать, что утверждение не удалось. LinkageError
- Подклассы LinkageError указывают, что класс имеет некоторую зависимость от другого класса; однако последний класс изменился несовместимо после компиляции первого класса. VirtualMachineError
- Выдается, чтобы указать, что виртуальная машина Java неисправна или исчерпала ресурсы, необходимые для продолжения работы. На самом деле существует три важных подкатегории Throwable
:
Ошибка
- Произошла какая-то достаточно серьезная ошибка, поэтому большинство приложений должно аварийно завершить работу, а не пытаться решить эту проблему, RuntimeException
) - Очень часто ошибка программирования, например NullPointerException
или недопустимый аргумент. Приложения иногда могут обрабатывать эту Throwable
категорию или восстанавливать ее - или, по крайней мере, ловить ее с помощью метода Thread run ()
, регистрировать жалобу и продолжать работу. FileNotFoundException
и TimeoutException
... Ошибки, как правило, сигнализируют о завершении вашего приложения в том виде, в каком вы его знаете. Обычно он не может быть восстановлен и должен вызвать выход вашей виртуальной машины. Их следует ловить только для того, чтобы, возможно, зарегистрировать или отобразить соответствующее сообщение перед выходом.
Пример: OutOfMemoryError - Вы мало что можете сделать, поскольку ваша программа больше не может работать.
Исключения часто можно исправить, и даже если это не так, они обычно означают, что попытка выполнения операции не удалась, но ваша программа все еще может продолжаться.
Пример: IllegalArgumentException - Переданы недопустимые данные в метод, поэтому вызов метода завершился неудачно, но это не повлияло на будущие операции.
Это упрощенные примеры, и есть еще много информации только об исключениях.
Sun говорит лучше всего :
Ошибка является подклассом Throwable это указывает на серьезные проблемы, которые разумное приложение не следует пытаться поймать.
Описание класса Error
довольно ясно:
Ошибка
является подклассом
Throwable
это указывает на серьезные проблемы, которые разумное приложение не следует пытаться ловить. Большинство таких ошибок ненормальные условия.ThreadDeath
ошибка, хотя и является «нормальным» состоянием, также подклассОшибка
, потому что большинство приложения не должны пытаться поймать это.Метод не требуется объявлять в его предложение throws любые подклассы
Ошибка
, которая могла возникнуть во время выполнение метода, но не пойманы, так как эти ошибки ненормальные условия, которые никогда не должны
Цитируется из собственной документации Java класса Error
.
Короче говоря, вы не должны обнаруживать Error
s, за исключением того, что у вас есть веская причина для Сделай так. (Например, чтобы предотвратить сбой вашей реализации веб-сервера, если сервлету не хватает памяти или что-то в этом роде.)
Исключение
, с другой стороны, является обычным исключением, как и любое другое другой современный язык. Вы найдете подробное описание в документации по Java API или на любом онлайн- или офлайн-ресурсе.
IMO ошибка - это то, что может привести к сбою вашего приложения и не должно обрабатываться. Исключением является то, что может привести к непредсказуемым результатам, но может быть устранено.
Пример:
Если программе не хватает памяти, это является ошибкой, поскольку приложение не может продолжить работу. Однако, если программа принимает неправильный тип ввода, это исключение, поскольку программа может обработать его и перенаправить для получения правильного типа ввода.
Вот довольно хорошее резюме из Java API, что представляют собой ошибки и исключения:
Ошибка - это подкласс Throwable, который указывает на серьезные проблемы, которые разумное приложение не должно пытаться уловить. Большинство таких ошибок являются ненормальными. Ошибка ThreadDeath, хотя и является «нормальным» условием, также является подклассом Error, поскольку большинству приложений не следует пытаться ее перехватить.
Метод не требуется объявлять в его предложение throws любые подклассы Ошибка, которая может возникнуть во время выполнение метода, но не пойманы, так как эти ошибки ненормальные условия, которые никогда не должны
OTOH, для Исключений, Java API говорит:
Класс Exception и его подклассы являются формой Throwable, которая указывает условия, которые разумное приложение может захотеть уловить.