在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的异常处理机制进行处理。
|