为什么有些线程的方法定义了要throws InterruptedException,如sleep, join, wait 等。在什么情况下,会发生这些异常?编码时在捕获到这些异常时,我们该怎么去处理?

解决方案 »

  1.   

    一般都是在几个thread共享一个资源的时候使用,
    比如打印机在一个thread的sleep时间内,如果有别的thread
    调用这个资源就会发出一个interrupted的错误。
    catch之后一般都是关闭资源。
      

  2.   

    就是为了防止有异常才要用THROWS把异常抛出,并做适当的处理,如果一个程序超过一定的等待时间就应该抛出相应的异常,并做处理(如超时)
      

  3.   

    这里面的东西太多了
    去这里看看吧,应该可以解决你的问题
    http://blog.csdn.net/axman/archive/2005/12/26/562249.aspx 
      

  4.   

    当JAVA 程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是 java.lang.Thowable的子类。 
    这是从一个帖子上引用的!