У меня есть веб-служба со встроенным Undertow, и некоторые обработчики используют общий шаблон Undertow для разгрузки запросов рабочим потокам:
if (exchange.isInIoThread()) {
exchange.dispatch(this);
}
Это хорошо для производительности, но создает проблему при обработке ошибок. Я создал собственный ErrorHandler, который сопоставляет исключения Java с типами ответов HTTP и уровнями журналов и позволяет самим обработчикам API просто всплывать исключения и не беспокоиться об их обработке. К сожалению, для запросов, которые отправляются в рабочий поток, они никогда не попадают в ErrorHandler, что всегда приводит к ошибке 500, если они вызывают исключение. Есть ли способ перехватывать исключения, генерируемые рабочими потоками, или мне нужно реализовать обработку исключений в каждом обработчике API?
UncaughtExceptionHandler
для каждого потока, чтобы обрабатывать исключения, создаваемые потоками. - person Saravana   schedule 10.06.2016