0
我有運行嵌入式暗潮一個Web服務,以及一些處理程序使用卸載請求的工作線程共同暗潮模式:如何處理Undertow工作線程拋出的異常?
if (exchange.isInIoThread()) {
exchange.dispatch(this);
}
這是偉大的表現,但它提出在處理一個問題與錯誤處理。我創建了一個自定義的ErrorHandler,它將Java異常映射到HTTP響應類型和日誌級別,並允許API處理程序自己冒出異常並且不用擔心處理它們。不幸的是,對於派發到工作線程的請求,他們從來沒有把它放到ErrorHandler中,如果他們拋出異常,總是會導致500錯誤。有什麼辦法來捕捉工作線程拋出的異常,還是我必須在每個API處理程序中實現異常處理?
您可以爲每個線程設置'UncaughtExceptionHandler'來處理線程拋出的異常 – Saravana
處理程序需要訪問HttpServerExchange以處理失敗的請求。如果我控制所有處理程序的代碼,就可以將其傳入,但有很多內置的處理程序可以使用,例如https://github.com/undertow-io/undertow/blob/主/核心/ SRC /主/ JAVA/IO /暗流/安全/處理/ AuthenticationCallHandler.java#L46。 – Jared