在Java中处理InterruptedException

在Java中处理InterruptedException

以下处理方法的区别是什么?InterruptedException?做这件事最好的方法是什么?

try{
 //...} catch(InterruptedException e) { 
   Thread.currentThread().interrupt(); }

try{
 //...} catch(InterruptedException e) {
   throw new RuntimeException(e);}

编辑:我还想知道这两种场景是在哪种情况下使用的。


白板的微信
浏览 934回答 3
3回答

蛊毒传说

碰巧我今天早上在上班的路上读到了Java并发在实践中的应用布莱恩·戈茨写的。基本上他说你应该做两件事中的一件传播InterruptedException-声明您的方法抛出检查InterruptedException这样你的来电者就得处理好了。恢复中断-有时你不能InterruptedException..在这种情况下,您应该捕获InterruptedException并通过调用interrupt()方法的currentThread因此,调用堆栈上的代码可以看到发出了一个中断。

茅侃侃

你想做什么?这个InterruptedException当线程正在等待或处于休眠状态时,而另一个线程使用interrupt课堂方法Thread..因此,如果捕捉到此异常,则意味着线程已被中断。通常打电话是没有意义的Thread.currentThread().interrupt();同样,除非您想从其他地方检查线程的“中断”状态。关于你的另一个选择-抛出一个RuntimeException,这似乎不是一件非常明智的事情(谁会抓到这件事呢?)如何处理?)但是,如果没有更多的信息,很难说出更多的信息。
打开App,查看更多内容
随时随地看视频慕课网APP