一 异常:Java中,将程序执行过程中发生不正常的行为叫做异常
二 异常分类:-1.编译时异常(受查异常)(必须处理) ---在程序编译的时候发生的异常
-2.运行时异常(非受查异常)--在程序执行的时候发生的异常
注意:编译出现的语法错误,不算异常,是出错
三 异常的处理:1.防御式处理(事前防御型):简单来说,操作之前做充分的检查,一步步检查,有错就能发现(正常流程与错误处理流程 代码混在一起,代 码整体混乱)
2.EAFP(事后认错型):先操作,在最后看有没有错误(正常流程与错误处理流程 代码分开在一起 代码清晰)
四 异常的抛出:——throw-写在方法的内部,抛出对象必须是Exception或Exception的子类对象,异常一旦抛出后面的代码不会再执行(一会看try..catch,finally)
五 异常的捕获:主要两种方法 异常声明throws ,try-catch捕获处理
——异常声明throws 当前方法不处理异常,提醒方法的调用者处理异常
~throws必须跟在方法的参数列表之后~如果抛出了多个异常,throws后要跟多个异常类型可以用逗号隔开
——try-catch捕获处理 throws没有真正的处理,想要真正对异常进行处理要使用 try-catch
~try块内抛出异常之后的代码不会再执行 ~如果抛出的异常类型与catch的异常类型不匹配,异常不会被捕获,也不会被处理,继续往外抛,直到JVM收到后中断程序(异常按照类型来捕获的)~Exception类是所有异常的父类,可以用这个类表示所以的异常(不建议)
六 finally:有些代码无论程序是否发生异常,都需要被执行(程序正常或异常退出,必须要对资源进行回收)(finally中的代码一定会执行,一般在其中进行一些资源清扫的扫尾)



