异常
一.概述
1、生活中的异常
     生活中不正常的事件。
2、程序中的异常
    程序在运行时出现的错误!
    程序中异常以类的方式表示,当程序中出现异常时,就是产生了某种异常类的对象。
    而异常对象必须进行捕获并处理,如果不捕获,则异常对象由JVM处理。
    而JVM处理异常的方式为:把异常信息输出在控制台,并终止程序。

二.异常继承结构
1.异常结构继承结构图

2、异常的分类
1) 运行时异常 :RuntimeException及子类。不强制处理
2)编译异常  :Exception类及非RuntimeException的子类。必须处理,如果不处理则引发编译错误
三.异常处理的第一种方法throws
1、throws关键词的使用:在方法上声明异常,此方法没有处理异常。由调用者处理
语法:
访问修饰符   返回值类型  方法名(参数列表)throws 异常类型,异常类型{方法体}
四.处理异常的第二种方法try catch
1、try catch语法结构
try{
可以会出现异常的代码。
}catch(异常类型 变量名){ //捕获对应类型的异常对象,保证后续代码继续执行。
}
2、try catch的执行顺序
2.1:try中的代码 没有产生异常,则catch不执行,而执行try-catch后的代码
2. 2 :try中的某行代码产生了异常,则try中的后续代码不再执行,而到对应异常类型的catch执行,执行完catch后,执行try-catch后的代码
3、try块中带有多个catch时的注意事项
如果多个catch之间的异常类型之间有继承关系,则先子后父。
异常对象:取得异常描述信息:getMessage();取得异常的堆栈信息:printStackTrace();
五.异常的finally语块
1、finally语句块的含义
在try-catch块后加入finally块,可以确保无论是否发生异常,finally块中的代码总能被执行
2、try,catch,finally三个关键词的执行顺序
3、何种情况下不执行finally块
异常处理代码中执行System.exit(1)退出Java虚拟机
六.final,finalize,finally区别
1 final:java中的关键字,修饰符。
    1)、可以修饰类
    如果一个类被声明为final,就意味着它不能再派生出新的子类,不能作为父类被继承。    
    2)、 可以修饰方法
        被声明final的方法,不能被子类重写。
   3)、修饰变量,
        如果将变量或者方法声明为final,可以保证它们在使用中不被改变.  
 2 finally:java的一种异常处理机制。。finally 结构使代码总会执行,而不管有无异常发生。
 3  finalize:Java中的一个方法名。
    Java技术使用finalize()方法在垃圾收集器将对象从内存中清除出去前,做必要的清理工作。
     这个方法是由垃圾收集器在确定这个对象没有被引用时 对这个对象调用的。
     它是在Object类中定义的,因此所有的类都继承了它。子类覆盖finalize()方法以整理系统资源或者执行其他清理工作。
     finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。
七.手动抛异常throws
1、throw 异常对象
当程序中的某个代码产生异常:生成一个异常的对象,并抛出
异常都在代码里产生的,throw new  异常类型();
使用throw关键词抛出异常对象。
1) 可以抛出运行时异常: 可以不处理
2) 抛出编译异常: 必须处理。
2 当方法中抛出异常后要对此异常进行处理
1)、 throws在方法上添加异常的声明。
2) 、try-catch进行异常的捕获。
八.自定义异常(代码开发中常用)
1、自定义异常的语法
访问修饰符   class 类名  extends Exception或其子类{}
2 、产生自定义异常一定与throw关键词一起使用
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号