为了账号安全,请及时绑定邮箱和手机立即绑定

在Java中处理InterruptedException

在Java中处理InterruptedException

在Java中处理InterruptedException以下处理方法的区别是什么?InterruptedException?做这件事最好的方法是什么?try{  //...} catch(InterruptedException e) {     Thread.currentThread().interrupt(); }或try{  //...} catch(InterruptedException e) {    throw new RuntimeException(e);}编辑:我还想知道这两种场景是在哪种情况下使用的。
查看完整描述

3 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

碰巧我今天早上在上班的路上读到了Java并发在实践中的应用布莱恩·戈茨写的。基本上他说你应该做两件事中的一件

  1. 传播InterruptedException-声明您的方法抛出检查InterruptedException这样你的来电者就得处理好了。

  2. 恢复中断-有时你不能InterruptedException..在这种情况下,您应该捕获InterruptedException并通过调用interrupt()方法的currentThread因此,调用堆栈上的代码可以看到发出了一个中断。


查看完整回答
反对 回复 2019-07-06
?
茅侃侃

TA贡献1842条经验 获得超21个赞

你想做什么?

这个InterruptedException当线程正在等待或处于休眠状态时,而另一个线程使用interrupt课堂方法Thread..因此,如果捕捉到此异常,则意味着线程已被中断。通常打电话是没有意义的Thread.currentThread().interrupt();同样,除非您想从其他地方检查线程的“中断”状态。

关于你的另一个选择-抛出一个RuntimeException,这似乎不是一件非常明智的事情(谁会抓到这件事呢?)如何处理?)但是,如果没有更多的信息,很难说出更多的信息。


查看完整回答
反对 回复 2019-07-06
  • 3 回答
  • 0 关注
  • 933 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号