黑马程序员技术交流社区
标题:
wait()方法为什么不运行catch块的内容?
[打印本页]
作者:
曹宇
时间:
2013-5-8 18:09
标题:
wait()方法为什么不运行catch块的内容?
本帖最后由 曹宇 于 2013-5-11 14:47 编辑
try
{
wait();
}
catch (InterruptedException e)
{
System.out.println("InterruptedException异常了");
}
复制代码
如上面代码,运行程序的时候,仅仅线程就wait了,并没有进行异常处理,没有输出InterruptedException异常了。
而我用interrupt()方法唤醒线程的时候,运行了 catch块中的内容。输出了InterruptedException异常了。
我查阅 api 发现 wait方法和 interrupt方法 都会抛出异常的。
现在想起来以前在看老师视频讲解的时候,对wait的 try catch 都没有输出过catch的内容。
这是为什么呢?
作者:
任江峰
时间:
2013-5-9 21:50
wait()方法throws InterruptedException异常。
当它正常运行的时候,不会抛出异常,所以就不会执行相应catch代码块。
当wait()方法遇到异常情况被打断,就会抛出InterruptedException异常,执行它的catch代码块。
作者:
逝者轨迹
时间:
2013-5-10 00:14
interrupt()是中断线程啊,是Thread的一个方法。notify() 唤醒在此对象监视器上等待的单个线程,notifyAll() 唤醒在此对象监视器上等待的所有线程。
作者:
曹宇
时间:
2013-5-10 13:37
任江峰 发表于 2013-5-9 21:50
wait()方法throws InterruptedException异常。
当它正常运行的时候,不会抛出异常,所以就不会执行相应catc ...
恩,我晓得了,我自己思维混乱了,就跟别的其他异常了 只是定义会发生异常,没异常正常运行有异常就抛出。。
我叫我自己误解了。
我以为wait方法是抛出个异常而用来实现让线程等待的功能。
作者:
曹睿翔
时间:
2013-5-10 22:36
问题解决请编辑改为已解决,有疑问可以继续追问
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2