A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马张健 中级黑马   /  2012-5-28 19:44  /  2031 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我们经常会写
public static void main(String[] args)  throws Exception{}
我想问一问 抛出的异常是抛给谁了?是让谁捕获了,又是让谁处理了此异常呢?
谢谢!

6 个回复

倒序浏览
当然是抛给JVM了,JVM处理不了,程序就会停掉。
回复 使用道具 举报
一级一级的往上抛。如果都没有处理,最后就是JVM虚拟机处理了。
回复 使用道具 举报
谁调用这个函数,谁就得catch,并且处理这个异常。
特殊情况就是,runtimeException是直接抛给虚拟机。
而你这个主函数的异常,因为是虚拟机调用主函数,所以是虚拟机接住,并处理。
回复 使用道具 举报
这问题视频有,老师强调过,谁调用谁处理,正常情况下是虚拟机在处理主函数,当然用户也可以手动调用,那么此时用户就要处理这个异常
回复 使用道具 举报
java中的main函数抛出的异常由JVM(java虚拟机)处理。

在java程序中如果异常都向外抛,直到try{}catch处捕获;如果到了主方法(main方法)仍没有捕获,异常就由java虚拟机(java运行环境)处理
回复 使用道具 举报
抛给后面将会调用该方法的那个类。
就像是接力赛一样,我和你有接触,
那么我就会得到你跑出的这个异常
信息,我可以对他做处理,也可以
继续往后面传
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马