Exception与RuntimeException的区别(异常的基本概念)

来源:互联网 发布:大数据平台搭建 编辑:程序博客网 时间:2024/05/29 00:33

Exception与RuntimeException的区别(异常的基本概念)

首先观察一下代码:

public classRuntimeExceptionDemo{      public static void main(String args[])      {           String str1="21";//定义字符串           int temp=Integer.parseInt(str1);//将字符串变成INT型           System.out.println(temp*temp);//输出乘方      }}

编译---运行后发现没有问题!其中用到了parseInt()方法。

parseInt()的定义格式:

 由API文档可知:public static int parseInt(String s,

                          int radix)

                   throws NumberFormatException

在此方法中用了throws关键字抛出异常,可是不用捕获处理异常就编译成功了!通过查找可知如下关系

java.lang.Object
      java.lang.Throwable
         java.lang.Exception
             java.lang.RuntimeException
                 java.lang.IllegalArgumentException
                       java.lang.NumberFormatException

其中

Exception
RuntimeException
IllegalArgumentException
NumberFormatException
为继承关系!但是我们抛出RuntimeExeption的子类lang.NumberFormatException没有需要执行try...catch,如果抛出的是Excption则需要执行try...catch;

我们得出结论:

   在Java的异常处理机制中:

1.如果抛出的是Exception的类型,则必须使用try…catch进行处理!

2.如果抛出的是RuntimeException的类型,则不是必须使用try…catch处理,一旦发生异常之后将有JVM进行处理!但是为了保证代码的健康性,建议在可能有异常的地方使用try…catch进行处理!

0 0