黑马程序员技术交流社区
标题:
异常小问题?
[打印本页]
作者:
湛添友
时间:
2014-4-17 12:49
标题:
异常小问题?
public class RuntimeDmeo
{
public static void main(String args[]) throws InterruptedException
{
Thread.sleep(1000);
System.out.println(2);
}
}
为什么调用sleep
这里没有try 而是抛
抛给虚拟机 收到异常了吧
收到异常为什么程序没有被终止
而是打印出2
虚拟机是怎么处理的?
作者:
sheng6699
时间:
2014-4-17 13:10
1.如果线程执行到了阻塞方法,那么该方法取消阻塞,并将中断变量重新置为false。
2,InterruptedException提供了一种特殊的机制提前结束阻塞方法.
作者:
月光海
时间:
2014-4-17 13:16
打印出2是因为Thread.sleep(1000);没有异常产生,所以它就不会抛出异常给虚拟机,throw才是抛出异常,而throws只是声明异常,明白?
作者:
程序爱好者
时间:
2014-4-17 13:35
这个方法可能会抛出一个异常,如果你不对这个异常进行捕获和处理,编译器会报错(有些软件不会)
换句话说,强制性处理这个异常.
作者:
Ricky_Nick
时间:
2014-4-17 13:35
声明异常,是表示有可能发生异常,为了编译通过,通常都会声明一下或者try/catch。这里抛出去了,可以让编译通过,而且异常没有发生,所以会有打印结果。。。。。
作者:
luis
时间:
2014-4-17 15:14
声明异常,是表示有可能发生异常,不表示异常一定存在,而且你这个程序就不会发生异常,因为你所做的就是让主线程(main)睡10毫秒,时间到了它就会继续执行下面的的指令
作者:
湛添友
时间:
2014-4-17 17:40
月光海 发表于 2014-4-17 13:16
打印出2是因为Thread.sleep(1000);没有异常产生,所以它就不会抛出异常给虚拟机,throw才是抛出异常,而thr ...
是 啊 豁然开朗
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2