本小结是根据尚硅谷的教程逐步进行总结,包含了自己的理解。 本篇只是对异常(exception)进行总结
exception包含编译(checked)和运行两部分异常。编译时异常是指在写代码的时候出现的异常,例如FileNotfoundException,运行时是指在运行后,程序计算后可能会出现的异常,例如数组越界异常。 这些异常都可以在代码中提前进行预防。
程序异常的处理:抓抛模型 过程一:抛:程序在正常执行的过程中,一旦出现异常,就会在异常代码处生成一个异常对象,并将这个对象抛出,一旦抛出后,代码就不再执行。 二:抓:可以理解为异常的处理方式。
try-catch-finally结构分析
try中放可能会出现异常的代码 catch中的参数部分是异常类型+变量名,内部为异常处理的方式 finally中为一定会执行的代码。 其中finally可选。 抛出的对象只会在第一次匹配到的catch中发挥作用,其他的异常即时有用也不会发挥作用。 catch中的异常类型如果没有子父类关系,声明顺须无所谓。 catch中常用getStackTrace()来处理异常。
关于finally。像数据库连接、输入输出流、网络编程Socket等资源,JVM是不能回收的,这些需要手动释放的资源就要放在finally中。 以文件打开为例,在try中可能会出现文件的异常,在catch中抓到处理后,就会结束程序执行,那么文件便不会关闭,这时就需要finally,将文件关闭。
try-catch还可以嵌套。
开发中对两种异常处理方式的选择:
一:父类中若没有throws方式处理异常,子类在重写方法的时候就不能用这个throws方式。
接着是另一种异常处理的方式:throws+异常类型
这个卸载方法的声明出,指明方法执行时,可能会出现的异常。一旦出现异常,就会在异常代码处生成异常类的对象,此对象满足类型后就会在catch抛出。
关于手动抛出异常:
来源:https://www.cnblogs.com/greatPrograme/p/12582017.html