Класс в основном является определением и содержит код объекта. Объект является экземпляром класса
, например, если вы говорите
String word = new String();
, класс является классом String, который описывает слово объекта (экземпляра).
Когда класс объявлен, память не выделяется, поэтому класс является просто шаблоном.
Когда объект класса объявлен, выделяется память.
Да, существует defaultUncaughtExceptionHandler
, но это только инициировало, если эти Thread
не имеет uncaughtExceptionHandler
набор.
Часто, платформы Java как Struts и Spring (и Спецификация Сервлета, IIRC) позволяют Вам устанавливать глобальный обработчик исключений. Эти механизмы характерны для каждой платформы, все же.
Да, существует 'почти' глобален такой обработчик, доступный в ThreadGroup. Это не столь глобально как то, которое Вы упоминаете, но можно в основном достигнуть той же функциональности.
Запуск с Java 5, существует схожая функциональность, доступная непосредственно на класс .
ПотокаПринятие его похоже на выгоду (...) в C++, который Вы сделали бы:
try { // your code here } catch(Throwable ex) { // any sort of exception, even if the VM has choked on a peanut }
В целом это не хорошая идея, если Вы не имеете дело со сторонним кодом (необходимо попытаться всегда бросить подклассы Исключения (и не RuntimeException) в собственном коде - если это не указывает на ошибку программиста, которая должна быть delt с через поблочное тестирование.