在 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中文网其他相关文章!