Так как любое исключение, заброшенное в стеке обработчика нетто, генерирует восходящее событие и в конечном итоге вызывает exceptionCaught в обработчике, исключения не будут доставлены обработчику uncaught-exception. Даже повторное удаление этого исключения в методе exceptionCaught не помогает (потому что netty обрабатывает его снова). Я хотел бы бросить (некоторые или все) исключенные исключения из метода exceptionCaught. Есть какой-либо способ сделать это?Как обрабатывать непроверенные исключения, брошенные в стеки обработчиков нетто
ответ
Нет, нет способа сделать это. Единственное, что вы можете сделать, это обработать Exception в ExceptionCaught. Почему это проблема для вас?
Я должен согласиться с Норман, у меня была аналогичная проблема. Я создал метод exceptionCaught() и в нем называл мою процедуру обработки исключений. Проблема, с которой я столкнулся, заключалась в том, что моя процедура обработки исключений пыталась выполнить очистку и вызывать другие методы Netty, но это привело к зависанию Netty.
Моим решением было создать новую тему изнутри exceptionCaught(), которая вызывает мою процедуру обработки исключений и простой возврат из exceptionCaught(). Это позволяет обработать исключение Netty для завершения и возобновления нормальной работы Netty. Вам нужно поставить 1-секундную задержку в свой новый поток, прежде чем вызывать любые другие функции Netty. Это гарантирует, что обработка исключений netty выполняется до того, как мой новый поток начнет очистку и вызовет другие функции netty. Это кажется немного чрезмерной работой, но она работает и позволяет избежать условий гонки.
- 1. Как обрабатывать исключения, брошенные методом в PHP 5.4?
- 2. Найдите исключения, брошенные Microsoft.FSharp.Control.Trampoline
- 3. Производительность: проверенные и непроверенные исключения в JAVA
- 4. Как поймать исключения, брошенные внутри актера?
- 5. Поймать исключения, брошенные Swagger
- 6. Как обрабатывать пакеты в нетто?
- 7. Должны ли мы обрабатывать непроверенные исключения в Java?
- 8. Пользовательские непроверенные исключения
- 9. Как вы регистрируете непроверенные исключения?
- 10. Необработанные исключения, брошенные в потоки, не пойманы
- 11. Непроверенные исключения в Java: Наследовать от ошибки или исключения RuntimeException?
- 12. Как обрабатывать нетто :: ERR_CONNECTION_REFUSED в Angular2
- 13. Как найти исключения, брошенные методом OpenReadAsync
- 14. Необычные исключения, брошенные в андроидную деятельность
- 15. Исключения, брошенные в асинхронный javascript, не поймали
- 16. Как обрабатывать непроверенные аккаунты с весной?
- 17. VS2010 модульные тесты - брошенные исключения являются пустыми
- 18. Как обрабатывать упорядочение обработчиков ошибок флагов
- 19. Обработка JVM брошенные исключения во время инициализации
- 20. Проверено vs Непроверенные исключения в Java
- 21. Поймать исключения, брошенные Web2Py Database Abstraction Layer
- 22. Указатель из связанного исключения (стеки)
- 23. Java API и проверенные/непроверенные исключения confusion
- 24. Непроверенные исключения, внесенные в приложение GUI
- 25. Кто на самом деле обрабатывает исключения, брошенные в основном методе?
- 26. Как обрабатывать всплывающие сообщения, брошенные из веб-приложений в vb.net?
- 27. Должен ли я поймать исключения, брошенные при закрытии java.sql.Connection
- 28. Почему вам не нужно обрабатывать возможные исключения, брошенные классами в пакете `java.lang`?
- 29. Java Непроверенные исключения, выброшенные из основного
- 30. Определяется пользователем исключение проверяются или непроверенные исключения
Это проблема, так как мой UncaughtExceptionHandler не будет вызван. Поскольку UncaughtExceptionHandler является общим для разных слоев в моем приложении, я не хочу реплицировать этот код в exceptionCaught. Я предполагаю, что я бы ввел экземпляр UncaughtExceptionHandler в свой netty_handler и вывел метод явно. Хотя это будет хорошо, если есть какой-либо крючок в exceptionCaught для распространения исключения. Спасибо за ваш вклад. –