异常【exception】
1.了解异常概念
异常:在程序运行/生活过程中,所发生的不正常的/不符合预期的情况(意外),这就是异常,它会导致程序的中断,或者过程的结束。
2.理解java异常处理机制
try:尝试
catch:捕获,抓
finally:最终的
throw:抛,扔
throws:抛,扔/计算机释义:声明
3.会捕捉异常
3.1基础try-catch
添加了异常处理机制之后,程序运行的情况:
1.未出现异常
正常执行try中的和try-catch后的代码,不会执行catch中的代码。
2.出现对应的异常
在执行try中的代码时,如果出现异常,try中的代码表不再往下执行,jvm会立刻创建对应的异常对象,然后将此对象穿ID给catch块中的异常类型形参,进 入catch块对异常激进型处理,处理完后继续执行后续代码。
3.出现不对应的异常
在执行try总的代码时,如果出现异常,try中的代码不再往下执行,jvm会立刻创建对象的异常对象,然后将此对象传递给catch块中的异常类型形参,但如 果catch的形参不匹配,则无法传入,也就无法进行异常处理,程序中断。和未添加异常处理一样的效果。
3.2多重catch
类似于多重if,只要有一个异常类型满足,剩下的异常类型捕获不会执行。
它的一引用场景:需要对不同的异常进行不同的异常操作时,需要多重catch,但是很多场景下,为了省事儿,会直接不回个exception父类。
3.3try-catch-finally
finally中的代码,无论程序是否出现异常都会正常执行。
当finally和return同时出现时,会先执行finally中的代码然后执行return
finally除了断电等物理情况外的唯一不执行时机:system.exit(0);// 推出虚拟机
finally:清除异常
final:常量
finalize:自动垃圾回收。
4.会抛出异常
throw:接异常对象,抛出自定义的或者更全面的异常信息对象
throws:接异常类型,标注在方法声明上的,用来声明此方法可能会出现的异常类型。
自定义异常
5.了解java异常体系结构
Throwable
Error(程序无法修复必须人工修改)exception(可通过代码/程序进行动态修复的)
Checked异常(受检异常:编写出来就提示你进行解决) Runtime异常(运行时异常:代码执行过程中出现的异常,有时候不需要修复,inputmismatchEception ArthimaticException ArrayIndexOutOfBoundsException、、、、都属于 运行时异常)
6.使用log4j记录日志