JAVA例外处理

捕获例外:

  Java产生例外对象后,将去寻找能够处理此例外的方法并交之处理,这一过程成为捕获(catch)。若找不到,运行时系统将终止

抛弃例外:

  一个方法若不知道如何处理出现的例外,可声明抛弃(throws)

jdk中,每个包都定义了例外类,所有的例外类都直接或间接继承于Throwable类。

java中的例外类可分为两大类:

  error

  exception

    运行时例外

        继承于RuntimeException的类都属于运行时例外,如算数(除零),数组越界等,由于例外产生的位置是未知的,java编译器允许程序员在程序         中不对它们作出处理。

    非运行时例外

        除运行时例外,便是非运行时例外,如FIleNotFindException(文件未找到例外),java编译器要求对这种例外必须作出处理,捕获例外或抛弃例外

例外的处理

  捕获例外

    通过try-catch-finally语句实现

    try:try语句所限定的代码块在执行过程当中可能会产生例外对象并抛弃。

    catch:每个try块可以伴随一个或多个catch语句,用于处理try块中所生成的例外事件。

           catch语句只需一个形参指明它所能够捕获的例外类型,这个类必须是Throwable的子类,运行时系统通过参数值把被抛弃的例外对象传递给catch                                    块。

        类Throwable提供了getMessage()方法:得到异常的相关信息,printStackTrace()用来跟踪事件发生时执行堆栈的内容。

         catch语句的顺序,第一个例外捕获到后,剩下catch不再捕获。故catch安排的顺序应该为从特殊到一般。即先安排子类在安排父类。

            finally:为统一的出口,无论有无例外,都会执行。

   抛弃例外:

      如果一个方法中生成了一个例外,但是这一方法并不确切地知道该如何处理这一异常事件。

             此时,这一方法应当声明抛弃例外,使得例外对象可以从调用栈向后传播,直到有合适的方法捕获它为止。

         

                 声明抛弃:

                   声明抛弃例外实在一个方法声明中的throws子句中指明的。

                       public int read() throws IOException {

                    ...

                        }

                 抛出例外:

                      抛出例外就是产生例外对象的过程。首先生成例外对象,由虚拟机或者某些类的实例生成。通过throw语句实现。

                      IOException e = new IOException();

                      throw e;

    

  

原文地址:https://www.cnblogs.com/forstudy/p/2434425.html