黑马程序员技术交流社区

标题: 线程 异常 [打印本页]

作者: 湛添友    时间: 2014-4-17 12:09
标题: 线程 异常
public class RuntimeDmeo
{
        public static void main(String args[]) throws Exception
        {
                Runtime r=Runtime.getRuntime();
                Process p=r.exec("notepad.exe RuntimeDmeo.java                                 Thread.sleep(1000);
        }
}
为什么sleep这里可以不try 而是可以抛  抛给虚拟机 虚拟机是怎么处理的?
作者: osully    时间: 2014-4-17 12:15
你不是抛了个爸爸吗。。所有儿子异常都可以不处理。。虚拟机遇到异常就停止程序并打印异常信息吧
作者: ⒈心只霸占沵    时间: 2014-4-17 12:28
Execption是所有可处理异常的父类
所以sleep抛出的异常 被Exception包括了
这里也是多态的一种表现吧!
作者: 清风有意    时间: 2014-4-17 12:46
处理异常就两个方法!
一个是try
一个是抛throws

主函数也是函数啊!主函数抛的话就是抛给了jvm虚拟机,
我认为(个人观点),jvm会从方法上声明的异常开始,先从此声明的异常的final子类中找,看看这些子类能否捕捉出现的异常,如果没有,就依次向上找异常。按说处理的异常都应该是final子类异常。

作者: sheng6699    时间: 2014-4-17 13:44
throws Excepiton 捕获所有异常。不用try 了。你的程序代码没问题虚拟机就管你的代码了。
作者: igi9009    时间: 2014-4-17 13:53
你try了的话就相当于你自己处理异常,抛了的话就相当于把异常丢给虚拟机处理,虚拟机遇到问题就自动报异常,这个我的见解




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2