zoukankan      html  css  js  c++  java
  • Java异常处理

    异常处理机制:

    异常就是程序执行中发生的不合理情况,异常发生时程序执行自动终止。Java语言提供了异常处理机制,通过该机制处理异常可以在一定程度上完善程序的合理性、正确性。Java异常处理机制是通过异常类来实现,在Java中,Throwable类是所有错误和异常的超类,它有两个子类Error类和Exception类,其中Exception类及其子类用来捕获和处理程序执行过程中的异常。

     

    异常类型:

    检查异常:可以被编译器分析的异常为检查异常;

    非检查异常:编译器不检查非检查异常;

     

    常见异常类:

    1、NullPointException      NullPointException类异常是由于调用null对象的方法或对一个null数组进行求数组长度等操作而出现的异常

                                                   例:JPanel     panel;

                                                            panel.setUI() ;

    2、ClassCastException   当将对象强制转换成与该对象所在类不兼容的另外一种类时会出现ClassCastException类异常

                                                   例:Objict obj =  new   Objict();

                                                           String s=(String)obj;

    3、ArrayIndexOutOfBoundsException          当数组下标大于数组长度时所引发的异常

                                                   例:int[ ]   Array=new int [3];               

                                                            Arry[3] =2;

    4、IOException                    使用流、文件和目录访问信息时引发的异常的基类,其中,子类FileNotFoundException较常见,当不存在指定路径名文件或者

                                                   虽存在但由于某些原因不能访问时引发FileNotFoundException类异常

                                                    例:FileInputStream  file = new FileInputStream("D://Test.txt")

                                                          D:// Test.txt文件不存在时出现异常

    5、NumberFormatException      Java程序仅接受字符串作为输入,当将字符串转换成另一种数值类型是易出现NumberFormatException类异常

                                                               例:  String    s="123a";

                                                                     int  a=Integer.parseInt(s);

     

    异常处理方式:(1)、try/catch或try/catch/finally

    将可能发生异常的的语句放在try语句块中;try语句块后有零个、一个或多个catch语句块,catch语句块指定可以捕获的异常的类型,同时包含异常处理程序;catch语句块后可能有finally语句块,无论是否发生异常都要执行的代码放在finally语句块中。形式为:

    try{

               //语句

    }catch (异常类型    引用名) {

             //语句

    }finally  {

                   //语句

    }

    注:发生异常时,创建特定异常类型的对象。catch语句块处理异常的类型由其参数的类型决定(小括号里的异常类型),参数中的引用名指向try语句块抛出的异常对象。

    当catch参数类型为Exception类时,由于超类的引用可以指向其子类对象,catch语句块可处理任意类型的异常。当有多个异常对象时,使用运算符instanceof,可以确定引用变量是否指向特定类型的对象。

    例:try{

                    //多个可能发生异常的语句

    }catch (Exception    e ) {

                 if ( e      instanceof       具体异常类型1  )

                    //异常处理语句

                else  if ( e  instanceof     具体异常类型2)

                    //异常处理语句

                     ......

    }

    (2)、throws

    throws用在方法的声明后,用来声明方法中可能抛出的的所有异常。throws后面跟异常类名。

    例:public  void  mathod ( ) throws   Exception {

                         .........

    }重生之大文豪www.dwhao.com

    (3)、throw

    throw在方法体中使用,用来抛出一个具体的异常,其后跟一个异常对象或引用。

    通过throw抛出异常后,如果想在上一层方法中来捕获并处理异常,则需要在抛出异常的方法中使用throws关键字在方法的声明中指明要抛出的异常类型;如果要捕捉throw抛出的异常,则必须使用try-catch语句。

     

    (4)、创建自定义的异常类

    Java允许用户创建自己的异常类,用来处理Java异常类未包含或则处理自定义的异常。

  • 相关阅读:
    LeetCode对撞指针汇总
    167. Two Sum II
    215. Kth Largest Element in an Array
    2018Action Recognition from Skeleton Data via Analogical Generalization over Qualitative Representations
    题解 Educational Codeforces Round 84 (Rated for Div. 2) (CF1327)
    题解 JZPKIL
    题解 八省联考2018 / 九省联考2018
    题解 六省联考2017
    题解 Codeforces Round #621 (Div. 1 + Div. 2) (CF1307)
    题解Codeforces Round #620 (Div. 2)
  • 原文地址:https://www.cnblogs.com/jiangye/p/3506028.html
Copyright © 2011-2022 走看看