在Java 中,在處理可能拋出此異常的方法時,處理InterruptedException 至關重要。處理此中斷的兩種常見方法是:
try { // ... } catch (InterruptedException e) { Thread.currentThread().interrupt(); }
當 InterruptedException 表示方法的有效結果並且應該傳播到來電者。例如,如果一個方法執行拋出 InterruptedException 的阻塞網路調用,則讓此異常傳播是有意義的,表示操作已中斷。
try { //... } catch (InterruptedException e) { Thread.currentThread().interrupt(); throw new RuntimeException(e); }
當方法在中斷的情況下無法產生有效結果並應終止時,首選此方法。透過設定中斷標誌(Thread.currentThread().interrupt()),它確保執行緒保持中斷狀態,通知呼叫者中斷。
適當的方法方法取決於情況:
void printSum(Server server) { try { int sum = computeSum(server); System.out.println("Sum: " + sum); } catch (InterruptedException e) { Thread.currentThread().interrupt(); // set interrupt flag System.out.println("Failed to compute sum"); } }
這裡,printSum 方法如果中斷則無法完成其操作,因此它捕獲InterruptedException,設定中斷標誌並列印另一則訊息。
以上是Java中應該如何處理InterruptedException?的詳細內容。更多資訊請關注PHP中文網其他相關文章!