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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴华二 中级黑马   /  2012-3-27 00:40  /  1946 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我们在java中要抛出异常一般都是在方法与"{"之间写上throws Excetpion,另一种是在方法体内throw new RuntimeException 但是有一个问题,在main()方法后我们有时候
会也会写上throws Exception 这都是一种偷懒的做法,那这个异常是由谁去处理(try)呢,如果说都不用去try catch,那干嘛不全部用throws Exception直接抛出去呢...为什么还要用try catch去捕获它呢???求解,知道原理的朋友帮忙解决一下...

3 个回复

倒序浏览
异常抛出后原则是谁调用谁负责。如果main()也不管了,那么最后异常就有虚拟机处理了。我们用try catch是希望自己处理掉它!不然在程序运行时出错了就只能关闭程序或不能正常运行了。。。
回复 使用道具 举报
main函数抛出的异常直接交给虚拟机处理
回复 使用道具 举报
main函数把异常抛给了  jvm   如果你出现了异常了  在控制台不是有提示吗?  这就是jvm捕获的异常并处理了
   记住一点就是抛出去的异常必定会有一个人要处理     那就是调用者   谁调用谁处理 不处理还可以抛 不过有些条件限制  比如父类没有抛异常子类就不能抛 等等
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马