在Java中,Thread.sleep()抛出InterruptedException。这个例外的正确做法是什么?
我应该
答案 0 :(得分:9)
你应该重新抛出异常。
这是Brian Goetz的摘要,他是优秀书籍“Java Concurrency in Practice”的作者:
处理InterruptedException :
如果抛出InterruptedException意味着 方法是一种阻塞方法, 然后调用阻塞方法意味着 你的方法是一种阻止方法 你也应该有一个策略 用于处理InterruptedException。 通常最简单的策略是投掷 InterruptedException自己,如 putTask()和getTask()中显示 清单1中的方法 你的方法响应中断 同样也经常不需要任何东西 不只是添加InterruptedException 你的投掷条款。
答案 1 :(得分:0)
如果你要做的就是烧掉一些时间,我建议你去捕捉并忽略这个例外。
另一方面,如果您需要适当的等待时间,并且任何先发制人的中断对您的程序来说真的很糟糕,那么您一定要重新抛出异常。
首先取决于异常发生的原因以及Thread.sleep()
的用例。