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