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异常类未包含或则处理自定义的异常。

posted @ 2014-01-05 16:51  将夜  阅读(276)  评论(0编辑  收藏  举报