某线程执行以下代码片段,当发生InterruptedException时,中断状态将如何变化? try { while (!Thread.interrupted()) { Thread.sleep(100); process(); } } catch (InterruptedException e) { System.out.println("Interrupted"); }
答案解析
核心考点:
1. sleep()与中断标志的交互
2. 异常处理对中断状态的影响
3. 中断处理的正确模式
解题思路:
- Option B正确:sleep()抛出异常前清除标志
- Option C是推荐做法但不是必然要求
- Option D错误:循环条件依赖显式检查
易错点:
1. 未理解异常抛出时的状态清除机制
2. 混淆异常捕获与中断标志的关系
3. 忽略中断处理中的状态恢复需求
正确答案:B