Моя проблема такая же, как у this thread: «Я хочу настроить собственный обработчик ошибок, который вызывается каждый раз, когда возникает непредвиденная ошибка. Как я могу это достичь?»Обработка глобальной ошибки Eclipse E4 RCP
Как это сделать в E4? В Е3 это может быть достигнуто путем переопределения метода eventLoopException
из ApplicationWorkbenchAdvisor
нить ссылки на another thread, где StatusReporter
расширяется. Теперь я могу расширить StatusReporter
, но его методы не запускаются автоматически при возникновении какого-либо неожиданного исключения. Также я получаю предупреждение о том, что StatusReporter
не является API.
Another approach, как указано в вики, предназначено для использования StatusHandler
. Но я не хочу ссылаться на StatusHandler
вручную. Я хочу, чтобы глобальный обработчик автоматически собирал исключения без обработки ...
Любая помощь была бы принята с благодарностью.
Спасибо, Жеан
Спасибо за ваш быстрый ответ. Я реализовал «IEventLoopAdvisor» и поместил его в контекст, как вы предложили. Его метод eventLoopIdle() вызывается каркасом, но, к сожалению, метод eventLoopException() не вызывается при необработанных исключениях ... Нужно ли вам делать что-то дополнительное для того, чтобы его называть? –
Нет. Если вызывается eventLoopIdle, это работает. Возможно, исключения, с которыми вы хотите иметь дело, на самом деле обрабатываются где-то. Если появившееся сообщение не говорит «Внутренняя ошибка xxxxx», это не происходит из события eventLoopException по умолчанию. –
Я бросаю манекен 'IllegalArgumentException' из метода' @ Persist' моей 'Part', просто чтобы проверить это. Возможно, это не действительный тестовый пример ... Как я могу проверить, работает ли он? –