處理InterruptedException:傳播與禮貌中斷
使用Java 執行緒時,當執行緒在等待某個執行緒時被中斷時,可能會出現InterruptedException。操作來完成。處理此異常有兩種常見方法:
1.傳播:
try { // ... } catch (InterruptedException e) { Thread.currentThread().interrupt(); }
傳播場景:當中斷操作對於方法的功能至關重要時,請使用此方法。透過傳播 InterruptedException,呼叫程式碼被告知操作已中斷,並可以決定如何處理它。
2.中斷與日誌記錄:
try { // ... } catch (InterruptedException e) { Thread.currentThread().interrupt(); // set interrupt flag System.out.println("Failed to compute sum"); }
禮貌中斷場景:當中斷的操作對於方法的結果並不重要時使用此方法。透過設定中斷標誌,呼叫程式碼可以確定是否發生中斷並採取適當的動作(例如記錄日誌)。
確定最佳方法
最佳方法取決於具體情況:
避免重新拋出異常
只需重新拋出InterruptedException即可是有問題的,因為它掩蓋了中斷的根本原因。相反,請始終禮貌地處理異常並記錄中斷。
以上是我應該在 Java 線程中傳播還是禮貌地處理 InterruptedException?的詳細內容。更多資訊請關注PHP中文網其他相關文章!