黑马程序员技术交流社区
标题:
RuntimeException 的特殊之处
[打印本页]
作者:
马振兴
时间:
2012-11-3 21:59
标题:
RuntimeException 的特殊之处
本帖最后由 马振兴 于 2012-11-5 11:26 编辑
RuntimeException 是 Exception的一个特殊的子类
那么他特殊在哪呢?系统异常?
定义和用法上的区别?
哪位能说详细点
作者:
葬天
时间:
2012-11-3 22:09
Runtime Exception(运行时异常)
一类特殊的异常,如被0除、数组角标越界等。产生比较频繁,处理麻烦,如果每次都处理,会对程序可读性和运行效率影响比较大,因此由系统检测并将它们交给缺省的异常处理程序,
用户不必对其进行处理。这类异常不处理,编译时不会报错,只是在运行时出现错误时才报告异常,
所以我们称之为运行时异常,所有RuntimeException的子类都是运行时异常。我们也可以对运行时异常进行处理
作者:
朱宏青
时间:
2012-11-3 22:14
Runtime Exception这个异常相当特殊,必须运行的时候才会出现的错误。所以处理起来比较麻烦,并且很多都会触发这类的错误,所以不能预见,所以才叫做Runtime Exception(运行时错误)。
嘛 就是因为这类的错误,才导致程序难开发啊,毕竟出来一个大家都不知道的错误,就蒙了不是。难搞的很。
作者:
邢晏玮
时间:
2012-11-3 22:16
异常有两种:
编译时被检测异常
该异常在编译时,如果没有处理(没有抛也没有try),编译失败。
该异常被标识,代表这可以被处理。
运行时异常(编译时不检测)
在编译时,不需要处理,编译器不检查。
该异常的发生,建议不处理,让程序停止。需要对代码进行修正。
而runtimeexceptiom就是运行时候的异常
作者:
秦久启
时间:
2012-11-3 23:13
在java面试中经常会询问Exception类与RuntimeException类的区别,如果想理解这两个类的区别,请看一下代码:
public class RunnableExceptionDemo{
String str = "123"; //定义一个由数字组成的字符串
int temp = Integer.parseInt(str); //将字符串变为int类型
System.out.println(temp*temp); //计算乘方
}
复制代码
从以上将字符串变成整型的代码来看,Integer因为开头首字母大写,所以肯定是一个类,而parseInt()方法可以直接由类名称调用,所以此方法肯定是一个静态方法,此方法定义如下:
public static int parseInt(String s) throws NumberFormatException;
复制代码
以上的方法在声明的时候使用了throws关键字,但是在方法调用的时并没有使用try...catch进行处理,这是为什么呢?下面观察NumberFormatException类的继承关系,如下:
Exception -->RuntimeException-->lllegealArgumentException-->NumberFormatException可以发现,NumberFormatException属于RuntimeException的子类,那么现在就可以
清楚的知道以下概念:1.Exception在程序中必须使用try...catch进行处理 2.RuntimeException可以不使用try...catch进行处理,但是try...catch进行处理,但是如果有异常产生
,则异常将由JVM进行处理。
提示:为了保证程序在出错后依然可以执行,所以在开发代码时最好使用try...catch的异常处理机制进行处理。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2