Выполненный: sudo tune2fs -c 30 /dev/hda1
Замена /dev/hda1
с файловыми системами, что это проверяет каждую начальную загрузку.
Поскольку некоторые исключения не являются производными от Exception
- например, Throwable
и Error
.
В основном иерархия типов:
Object
|
Throwable
/ \
Exception Error
Only Throwable
и производные классы могут быть выброшены, поэтому, если вы поймаете Throwable
, он действительно перехватит все.
Throwable
, Exception
и любое исключение, производное из Exception
, другие , кроме тех, что получены из RuntimeException
, считаются проверенными исключениями - это те исключения, которые вы должны объявить, которые вы выбросите, поймать, если вы вызываете что-то, что их бросает.
В общем, иерархия исключений Java немного запуталась ...
The class Exception and its subclasses are a form of Throwable that indicates conditions that a reasonable application might want to catch.
-- JavaDoc for java.lang.Exception
An Error is a subclass of Throwable that indicates serious problems that a reasonable application should not try to catch.
-- JavaDoc for java.lang.Error
There are certain errors that you may want to catch, such as ThreadDeath. ThreadDeath is classified as an Error, as explained below
The class ThreadDeath is specifically a subclass of Error rather than Exception, even though it is a "normal occurrence", because many applications catch all occurrences of Exception and then discard the exception.
However, since Thread's stop() method is now deprecated, you should not use it, and thus you should never see ThreadDeath.
Исключение - это всего лишь один из видов Throwable; NoSuchMethodError - это не исключение, а ошибка, которая является еще одним типом Throwable.
Как указывается в обоих других сообщениях, catch (Exception e) будет работать только для исключений, производных от Exception . Однако, если вы посмотрите на древовидную иерархию, вы заметите, что Exception if Throwable . Throwable также является базовым классом для ошибки . Итак, в случае NoSuchMethodError это ошибка, а не исключение. Обратите внимание на соглашение об именах * Error vs. * Exception (например, в IOException).
Как указывали другие плакаты, не все бросаемые объекты являются подклассами Exception
. Однако в большинстве случаев не рекомендуется перехватывать Error
или Throwable
, потому что эти условия включают в себя некоторые действительно серьезные ошибки, которые нельзя легко исправить. Ваш код восстановления может только ухудшить ситуацию.
Вы можете поймать Throwable
. Ошибка и исключение расширяют Throwable
.
см. Throwable JavaDoc :
Класс Throwable является суперклассом всех ошибок и исключений в языке Java.