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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马振兴 中级黑马   /  2012-11-3 21:59  /  2029 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 马振兴 于 2012-11-5 11:26 编辑

RuntimeException 是 Exception的一个特殊的子类
那么他特殊在哪呢?系统异常?
定义和用法上的区别?
哪位能说详细点

评分

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

查看全部评分

4 个回复

倒序浏览
Runtime Exception(运行时异常)
一类特殊的异常,如被0除、数组角标越界等。产生比较频繁,处理麻烦,如果每次都处理,会对程序可读性和运行效率影响比较大,因此由系统检测并将它们交给缺省的异常处理程序,用户不必对其进行处理。这类异常不处理,编译时不会报错,只是在运行时出现错误时才报告异常,所以我们称之为运行时异常,所有RuntimeException的子类都是运行时异常。我们也可以对运行时异常进行处理

评分

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

查看全部评分

回复 使用道具 举报
Runtime Exception这个异常相当特殊,必须运行的时候才会出现的错误。所以处理起来比较麻烦,并且很多都会触发这类的错误,所以不能预见,所以才叫做Runtime Exception(运行时错误)。

嘛 就是因为这类的错误,才导致程序难开发啊,毕竟出来一个大家都不知道的错误,就蒙了不是。难搞的很。

评分

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

查看全部评分

回复 使用道具 举报
异常有两种:
        编译时被检测异常
                该异常在编译时,如果没有处理(没有抛也没有try),编译失败。
                该异常被标识,代表这可以被处理。
        运行时异常(编译时不检测)
                在编译时,不需要处理,编译器不检查。
                该异常的发生,建议不处理,让程序停止。需要对代码进行修正。
而runtimeexceptiom就是运行时候的异常

评分

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

查看全部评分

回复 使用道具 举报
在java面试中经常会询问Exception类与RuntimeException类的区别,如果想理解这两个类的区别,请看一下代码:
  1. public class RunnableExceptionDemo{
  2.           String str = "123";  //定义一个由数字组成的字符串
  3.           int temp = Integer.parseInt(str); //将字符串变为int类型
  4.           System.out.println(temp*temp); //计算乘方
  5. }
复制代码
从以上将字符串变成整型的代码来看,Integer因为开头首字母大写,所以肯定是一个类,而parseInt()方法可以直接由类名称调用,所以此方法肯定是一个静态方法,此方法定义如下:
  1. 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的异常处理机制进行处理。

评分

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

查看全部评分

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