首先贴一下overstack上的一个回答:

理解:

(1)throws InterruptedException是你方法声明的一部分,也是你调用方法的返回值。

(2)当你的方法调用另一个方法的时候抛出了InterruptException异常,你就应该思考:InterruptException对于你的方法来说是不是有意义的结果?如果是,那你的方法就可以进行异常声明并将异常进行向上传播.例如:你的方法需要等待网络传递过来数值参数来完成计算并返回结果,如果网络一直阻塞导致无法完成计算过程,你就可以将InterruptedException异常进行向上传播.如果不是,那你就不能将InterruptedException抛出,而是应该将其捕获.有两件事情你应该熟记在心:1.其他线程可能阻塞了你的线程,或者是想优雅的取消你的操作,那么你就应该尽快返回. 2.即使你的方法在遇到InterruptedException的时候也能够返回有意义的值,线程被干扰的事实也是很重要的.如果调用你方法的代码想知道你的方法执行期间是否遇到过干扰,你就应该记录下:Threaed.currentThread().interrupt()

上面的这个例子展示了当调用computeSum这个函数的时候对可能抛出的InterruptException异常的处理,这种方法相比于直接返回栈信息或者抛出RuntimeException异常来说要友好很多.

上面的例子是说当你需要读取一个文件,你需要间隔性的尝试10次,如果在线程休眠时期遇到了中断,你就可以进行声明并异常抛出.

转载于:https://www.cnblogs.com/Guoyutian/p/5189434.html

InterruptedException的学习相关推荐

  1. Java学习总结:29

    线程间的经典操作案例--生产者与消费者案例 程序基本模型: package Project.Study.Multithreading;class Message{private String titl ...

  2. rocketmq 组监听_最全的RocketMQ学习指南,程序员必备的中间件技能

    一.简介 RocketMq是阿里开发出来的一个消息中间件,后捐献给Apache.官网上是这样介绍的: Apache RocketMQ™ is a unified messaging engine, l ...

  3. zookeeper学习记录

    2019独角兽企业重金招聘Python工程师标准>>> 背景 前段时间看了S4流计算引擎,里面使用到了zookeeper进行集群管理,所以也就花了点时间研究了下zookeeper,不 ...

  4. Logback学习笔记1

    Logback介绍 Logback 分为三个模块:Core.Classic 和 Access.Core模块是其他两个模块的基础. Classic模块扩展了core模块. Classic模块相当于log ...

  5. 必须要掌握的 InterruptedException 异常处理

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:不学无数的程序员 www.jianshu.com/p/a8a ...

  6. Java并发学习三:银行转账的死锁问题解决及示例

    Java并发学习系列文章:Java并发学习-博客专栏 今天在学习极客时间专栏:<Java并发编程实战> 从03 | 互斥锁(上):解决原子性问题到06 | 用"等待-通知&quo ...

  7. Java并发学习一:CPU缓存导致的可见性问题带来的并发Bug

    Java并发学习系列文章:Java并发学习-博客专栏 今天在学习极客时间专栏:<Java并发编程实战> 第一讲01 | 可见性.原子性和有序性问题:并发编程Bug的源头中提到了: 多核时代 ...

  8. [转]java.lang.instrument 学习(一)

    [转]java.lang.instrument 学习(一)  收藏 sunyh 发表于 10个月前 阅读 40 收藏 3 点赞 1 评论 0 转自:http://jiangbo.me/blog/201 ...

  9. java学习笔记13--反射机制与动态代理

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note13.html,转载请注明源地址. Java的反射机制 在Java运行时环境中,对于任意 ...

最新文章

  1. laravel ajax vue6,详解用vue.js和laravel实现微信支付
  2. 为什么说Python是一门动态语言--Python的魅力
  3. 02_记录学生相关数据,输出平均分数
  4. Ubuntu:成功解决ubuntu使用su切换root出现Authentication failure用户时认证失败
  5. PyTorch基础(13)-- torch.nn.Unfold()方法
  6. 依赖注入 这样的坑游戏编程要谨慎
  7. easymock 图片_数据模拟神器 easy-mock 正式开源
  8. asp.net+mvc+easyui+sqlite 简单用户系统学习之旅(二)—— easyui的简单实用
  9. [翻译]:怎样从C/C++代码中对C#进行回调
  10. Nodejs 路由封装 封装一个类似 express 的路由
  11. django项目时间与Ubuntu时间不一致
  12. java 批量执行 sql_执行批量操作 - SQL Server | Microsoft Docs
  13. phpstorm 不能选择 php language level
  14. PYNQ实战笔记(一)————常用的代码使用及配置技巧-持续更新
  15. vue router-link添加点击事件无效
  16. 全国计算机二级C语言考试难不难?应该怎么备考?
  17. [HTML]北京邮电大学信息与通信工程学院选课参考指南
  18. 密码学实验4 欧拉数求解和DES的初始置换
  19. 非财务人员的财务培训教(一.二)------财务基础知识
  20. 基于微信小程序的在线商城设计(后台PHP)

热门文章

  1. UP-DETR:收敛更快!精度更高!华南理工微信开源无监督预训练目标检测模型...
  2. DBFace升级,模型仅1.3M的轻量级高精度人脸检测模型
  3. FoveaBox:目标检测新纪元,无Anchor时代来临!
  4. 收藏 | 一文带你深入理解深度学习最新进展
  5. 精华文稿 | 工业场景中机器人定位导航技术
  6. 面向小姐姐的编程——java面相对象之抽象
  7. 一文初探Tensorflow高级API使用(初学者篇)
  8. 常用机器学习算法优缺点及其应用领域
  9. apache php 工作模式,PHP Apache中两种工作方式区别(CGI模式、Apache 模块DLL)
  10. MYSQL8 度分秒(DMS)转度(DDD)函数编写实战