簡體   English   中英

java ScheduledExecutorService可運行的異常處理

[英]java ScheduledExecutorService runnable exception handling

我意識到如果在我的runnable的run方法內部引發異常(或者不是,但應該與之相關),我的所有未來任務都將不會運行。

所以我的問題是:如何從這樣的異常中恢復(在哪里捕獲它)?

我試過這個: ScheduledExecutorService異常處理如果我做一個while循環來捕獲異常,未來的任務仍然沒有執行。 我也嘗試安排捕獲,也沒有幫助。

我試圖把一個巨大的try / catch包裝在run方法中的所有代碼中,但它似乎沒有捕獲任何東西,並且一些異常仍然沒有捕獲並導致我未來的所有任務都無法運行。

在執行程序框架中,您可以控制將作業從一個主應用程序線程運行到線程池線程。 線程通過調度提交工作,或者向submit方法返回一個Future對象,該對象允許它通過get方法獲取信息。 get方法將拋出一個執行程序異常,其原因可能是runnable中的代碼拋出的異常。 如果主線程不這樣做,它將永遠不會看到該異常,因此它實際上取決於您的應用程序邏輯流程。

另外還要提一下,如果你嘗試捕捉所有,如果你正在做類似的事情,你是什么意思

try {
....
}
catch(Exception e) {
    .... }

你真的沒有在你的應用程序中捕獲錯誤(throwable是異常和錯誤的父親)所以你可能有一些靜態初始化程序錯誤(靜態塊中捕獲異常)

這一切都取決於您希望異常處理如何發生,你有充分的力量,

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM