Java异常处理小结

十年热恋 提交于 2020-03-28 08:19:11

本小结是根据尚硅谷的教程逐步进行总结,包含了自己的理解。  本篇只是对异常(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抛出。

 

关于手动抛出异常:

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!