黑马程序员——java基础---异常

来源:互联网 发布:德温特专利数据库网址 编辑:程序博客网 时间:2024/05/19 18:15




-----------android培训java培训java学习型技术博客、期待与您交流!------------


     一、 异常:是指程序运行的过程中,产生了突发状况,会造成程序中断

             程序中的突发状况一般有2种:异常、错误

   

           1、错误 

               是属于系统级别的错误的发生通常是JVM在操作内存时(JVM操作内存是借

               用操作系统来完成的,内存出现了错误,造成错误的发生,操作系统就把

               所发生的错误反馈给JVM在开发中,一旦错误发生,就无法通过异常处理

               方案来解决,只能通过修改源程序的方案来解决错误。


            2、异常   

                异常在java中发生以后,有针对性的解决方案。异常的发生通常是在操

                作数据时,由于数据运算造成异常的发生,当异常发生后,java提供了

                针对异常的解决方案:声明、捕获



     二、异常的分类:

              1.编译时异常类:(Exception

                     当在程序中出现了编译时异常类后,编译器在编译时,检查该异常

                     类有没有针对性解决方案(有没有书写针对这个异常类的解决代码 

                    [捕获、声明]),有针对该异常类的解决方案(代码)就编译通过;

                     没有,就编译报错。


              2.运行时异常类:(RuntimeException 

                     当程序中存在运行时异常类时,编译器在编译时不会去检查该异常类

                     是否有针对性的解决方案(声明或捕获代码),编译器会直接通过编译。


                 二者区别:

                  运行时异常类在编译时期,不会去检查是否有针对性的处理方案;

                  编译时异常类会去检查是否有针对性的处理方案。


     三、异常处理方式

           1、声明    

               使用关键字throws来声明异常类,发生异常时,自己不处理,交给别人处理

        格式:修饰符  返回值类型  方法名(参数列表) throws 异常类一,异常类二……{ 

                           书写方法体中代码

                        }


            2、捕获

               使用关键字trycatchfinally,捕获是发生异常时,自己就把异常处理了

                 try{

                      书写可能会发生异常的代码

                  }

                  catch(异常类 引用对象){

                      书写处理异常的代码

                  }

                  finally{ //不论异常是否会发生,finally中的代码都会执行

                        书写最终要执行的代码

                  }

              注:当catch捕获到try代码块中的异常后,会先跟catch中书写的异常类进行

                     匹配,只有匹配成功后,才会进行处理

                  

              try、catch、finally有不同的组合方式

                1、try,catch,finally组合

                   try{

                   }

                   catch(){

                   }

                   finally{

                   }

                

                2、true,catch组合

                    try{

                    }

                    catch(){

                    }

                 

                3、try,catch,catch……多重catch组合

                   try{

                   }

                   catch(){

                   }

                   catch(){

                   }

                当try中发生异常后,会按照catch的书写顺序依次向下进行匹配,一但匹

                配成功后,下面的catch就不执行,catch中的异常类型,从上到下必须是

                从小到大的顺序

                       

                 4、try{

                    }

                    finally{

                    }

 

     四、继承中方法重写的异常注意

          1、如果父类中的方法上没有声明编译时异常。那么子类在重写父类的这个

             方法时,也不能声明编译时异常。如果子类重写方法中存在编译时异常,

             那么只能使用捕获来解决,不能使用声明;

          2、如果父类中方法上声明了异常类时,子类在重写父类中的这个方法时,

             重写方法上只能声明和父类方法上相同的异常类或其子类。






0 0
原创粉丝点击