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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

╭﹀*棒棒

中级黑马

  • 黑马币:29

  • 帖子:29

  • 精华:0

本帖最后由 杨兴庭 于 2013-7-25 23:22 编辑

try{能发生问题的代码块}
catch()
{}
希望了解一下:Exception
                              |--RuntimeException
                              |-其他子类
这两种区别,一直搞混,能不能用简单易懂的方法介绍一下,Error我知道是错误,没办法处理的。

评分

参与人数 1技术分 +1 收起 理由
杜光 + 1 每天提问并回答问题,是对知识的复习和积累.

查看全部评分

2 个回复

倒序浏览
Exception是编译时被检测的异常,是可以处理的,当一个方法有Exception或者其子类时,要么try catch, 要么throws继续抛出去,否则会编译失败。
RuntimeException是运行时异常,编译不被检测,(一般都是要求程序员改代码的),如果在函数内抛出改异常或者子类,函数上可以不用声明,编译一样会通过;
如果函数上声明了该异常,调用者也可以不处理,编译一样通过,但是不是RuntimeException或者其子类就不行了,,要么try catch, 要么throws继续抛出去,否则会编译失败。

评分

参与人数 1技术分 +1 收起 理由
杜光 + 1 每天提问并回答问题,是对知识的复习和积累.

查看全部评分

回复 使用道具 举报
本帖最后由 Mr_Free 于 2013-7-25 21:09 编辑

一般的异常在函数内抛,必须在函数上声明,否则编译失败。
RuntimeException 及其子类在函数内抛,不需要在函数上声明,编译一样通过。如果在函数上声明了该异常,调用可以不用进行处理。

为什么不声明?就是为了让他不处理这个异常。当该异常发生,希望该程序停止,在运行时,出现了无法处理的问题,希望程序停止后,程序员修正代码。

补充一下:RuntimeException 属于运行时异常,就是在编译时后不会被检测到的异常。所以不用声明,编译也会通过。而一般的exception是编译时异常,就是在编译的时候就必须被处理(或者throw或者try)的异常。

评分

参与人数 1技术分 +2 收起 理由
滔哥 + 2

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马