黑马程序员技术交流社区

标题: 希望讲解一下异常处理RuntimeException和其他的异常 [打印本页]

作者: ╭﹀*棒棒    时间: 2013-7-25 20:22
标题: 希望讲解一下异常处理RuntimeException和其他的异常
本帖最后由 杨兴庭 于 2013-7-25 23:22 编辑

try{能发生问题的代码块}
catch()
{}
希望了解一下:Exception
                              |--RuntimeException
                              |-其他子类
这两种区别,一直搞混,能不能用简单易懂的方法介绍一下,Error我知道是错误,没办法处理的。
作者: の放下执著    时间: 2013-7-25 20:49
Exception是编译时被检测的异常,是可以处理的,当一个方法有Exception或者其子类时,要么try catch, 要么throws继续抛出去,否则会编译失败。
RuntimeException是运行时异常,编译不被检测,(一般都是要求程序员改代码的),如果在函数内抛出改异常或者子类,函数上可以不用声明,编译一样会通过;
如果函数上声明了该异常,调用者也可以不处理,编译一样通过,但是不是RuntimeException或者其子类就不行了,,要么try catch, 要么throws继续抛出去,否则会编译失败。
作者: Mr_Free    时间: 2013-7-25 20:53
本帖最后由 Mr_Free 于 2013-7-25 21:09 编辑

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

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

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





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