- 异常分类:检查异常、运行时异常。
异常:凡是能用代码去纠正的是异常。
错误:不能用代码去纠正的问题。(硬件问题,运行环境等)
异常时被方法抛出的对象。
-
异常分类:Throwable(是类,不是接口){exception,error}
Exception{RuntimeException,IOException,ClassNotFoundException…………}
Error{LinkageError,IOError…………}
RuntimeException{ArrayIndexOutofBoundsException…………}
-
捕获异常:try{
正常逻辑下有可能发生异常的代码
}catch(异常类型){
处理代码}catch(异常类型){
处理代码}…………
}finally{不管是否发生异常都要执行的代码}
Finally:不管前面有return、break等跳转语句还是要先执行finally后再跳,可以用System.out.exit();来终止finall的跳出。
catch块中的异常有继承的关系,要先写子类异常,后面再写父类异常。
-
完全的方法声明:public static void 方法名() throws 异常类型{}
-
抛出异常关键字:throw
-
throw与throws的应用和区别
throw:写在方法体中,后面接的是一个异常对象,一旦执行,就会真正的发生异常抛出的动作。
throws:写在方法声明的最后,后面接的是异常类名,可以接多个,中间用逗号隔开,警告方法的调用者有可能会发生某种类型的异常。
区别:当throw后面跟一个运行时异常时,编译器不会强制本方法名加throws,就算自己加上,本方法的调用者也不会受到警告。
当throw后面跟的是一个编译期异常,编译器会提示加上throws。
-
Throwable类中两个主要方法:getMessage()(返回关于已发生的异常的详细信息)
printStackTrace()(把结果与调用栈的跟踪信息一起打印在控制台中)
-
自定义异常
-
首先要继承Throwsable或者exception
-
书写带参构造类,将已发生的异常对象的信息封装到自定义异常对象上,在书写一个带参构造类,用于针对业务的信息装入自定义类上。
-
添加自定义异常的特有方法
-