gpt4 book ai didi

java - 如何处理 Undertow 工作线程抛出的异常?

转载 作者:行者123 更新时间:2023-11-30 07:20:01 25 4
gpt4 key购买 nike

我有一个运行嵌入式 Undertow 的 Web 服务,一些处理程序利用常见的 Undertow 模式将请求卸载到工作线程:

if (exchange.isInIoThread()) {
exchange.dispatch(this);
}

这对于性能来说非常有用,但它在处理错误时带来了问题。我创建了一个自定义 ErrorHandler,它将 Java 异常映射到 HTTP 响应类型和日志级别,并允许 API 处理程序本身只冒泡异常,而不必担心处理它们。不幸的是,对于分派(dispatch)到工作线程的请求,它们永远不会进入 ErrorHandler,如果抛出异常,总是会导致 500 错误。有没有办法捕获工作线程抛出的异常,或者我是否必须在每个 API 处理程序中实现异常处理?

最佳答案

我最终在链的早期添加了一个处理程序,该处理程序立即将请求分派(dispatch)到工作线程。然后,我在 exchange.isInIoThread() 检查之外添加了错误处理逻辑,确保错误处理程序和引发异常的处理程序始终位于同一线程上。

关于java - 如何处理 Undertow 工作线程抛出的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37753726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com