Помогите Как перехватить любые ошибки?

  • Автор темы Автор темы Jebati
  • Дата начала Дата начала

Jebati

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Jebati
Здравствуйте.

Как можно плагином перехватить любые ошибки? Например на сервере есть плагин, который выкидывает исключения, возможно ли как-то плагином узнать об этом, и узнать кто их выкидывает?

Логи предлагать читать не нужно, поскольку в таком примере и там может не быть инфы об ошибки, если разработчик продумал "выкидыши)".

В общем мне нужно получить список плагинов, у которых были любые ошибки или исключения при их запуске.

Спасибо! % )
 
Стандартными механизмами с использованием Bukkit API ошибки другого плагина не перехватить.

Если ты хочешь ловить только не обработанные ошибки других плагинов, то скорее всего тебе нужно проинструментировать PluginClassLoader(грязные хаки).

Если ты хочешь ловить абсолютно все ошибки, в том числе и обработанные, то ничего кроме этого вспомнить не могу(хаки еще более грязные).

UPD: aadnk предложил еще 2 варианта один работает только для событий, как я понял.
 
Последнее редактирование:
Читай логи и все. Хоть плагином хоть руками.
Я бы и не против парсить лог файл, но повторюсь, в некоторых плагинах продуманы сбои и плагин просто спокойно без ошибок в консоли ложится на покой.
 
Стандартными механизмами с использованием Bukkit API ошибки другого плагина не перехватить.

Если ты хочешь ловить только не обработанные ошибки других плагинов, то скорее всего тебе нужно проинструментировать PluginClassLoader(грязные хаки).

Если ты хочешь ловить абсолютно все ошибки, в том числе и обработанные, то ничего кроме этого вспомнить не могу(хаки еще более грязные).

UPD: aadnk предложил еще 2 варианта один работает только для событий, как я понял.
Спасибо! : ) Мои цели более чем добрые.
 
Я бы и не против парсить лог файл, но повторюсь, в некоторых плагинах продуманы сбои и плагин просто спокойно без ошибок в консоли ложится на покой.
Ну тогда ты ничем и не отследишь такое. Выбрасывай.
 
Ну по идеи тебе надо ловить только не обработанные експепшны, для этого можешь юзать Thread.currentThread().setUncaughtExceptionHandler , ну а обработанные по-сути тебе врядли нужны, так как из них ты врядли сможешь реанимировать что-то, да и вообще отличить надо это реанимировать или нет
 
Назад
Верх