2022年异常知识点.docx
《2022年异常知识点.docx》由会员分享,可在线阅读,更多相关《2022年异常知识点.docx(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选学习资料 - - - - - - - - - 学习必备 欢迎下载学问点:1、 什么是反常;反常是程序正常执行过程中显现的不正常的情形;例如:人在成长过程 中,是个正常的执行过程,但成长过程中会常常生病,这就是反常;为了防止这种不正 常的情形,我们会实行一系列措施,比如:从小锤炼身体,吃新奇洁净的食物,养分合 理的搭配,以增强我们的体质;提高抗病才能;程序我们为了提高它运行时的健壮性,我们也得采纳一些措施;那么怎么提高程序的健壮性呢?获来增加程序的健壮性;2、 反常捕获的次序是怎样的呢?当一个反常发生或抛出;JAVA 程序中我通过反常的捕那么正常的程序执行序列将被终止,程序将对反常进行处理,
2、我们称之为抛出反常被捕获;JAVA 中通过使用try-catch语句把可能抛出反常的语句包起来;例如:前面讲到资源文件类 件加载时,使用以下语句捕获反常;try Properties pro=new Properties; Pro.loadnew FileInputStream “c:/abc.properties” ; catchIOException eSystem.out.printlne; 3、 反常的类型是怎样的呢?Properties 类在进行文全部反常类的超类是Throwable ;在Throwable下有两个子类,一个是Error ,另一个是Exception ;Error 是
3、错误,程序员无法掌握,Exception 是反常,程序员可以通过反常捕获加以掌握;例如: 电脑运行中中毒了,我们可以通过杀毒软件来处理,处理完了以后可以连续 使用, 这叫反常,我们可以掌握;但电脑显现了蓝屏或死机的时候,我们就不能进行任何操 作了;这就是错误,我们无法掌握;4、 程序中反常是怎么发生的呢?String inputStr = JOptionPane.showInputDialognull, 请输入年龄 ”;int age = Integer.parseIntinputStr; 以上代码要求用户输入年龄,年龄是个数字;但通过showInputDialog 得到的是个字符串;名师归纳
4、总结 - - - - - - -第 1 页,共 11 页精选学习资料 - - - - - - - - - 学习必备 欢迎下载所以我们需要 Integer.parseIntinputStr ,将字符串转成数字;这个时候,假如用户输入的不是 一 个 数 字 型 的 字 符 串 , 而 是 一 个 非 数 字 的 字 符 串 ( 如 字 母 、 符 号 ), 在 进 行Integer.parseIntinputStr 转化是就会发生一个反常;假如我们不对它作任何处理,程序就有可能因此终止掉;5、 怎样捕获一个反常呢;a、 把正常运行的代码放在 try 块里;b、 假如程序中显现了反常就把反常抛出在c
5、atch 中,假如 catch 中能捕获抛出的反常;那么就会进行处理;处理的代码写在 catch 块中;try 程序块里面的语句是按次序执行的语句当 try 程序块里面的语句抛出一个反常的时候,程序的掌握转向了相匹配的 catch 程序 块, catch 程序块里面的语句被执行;当反常发生后, 程序执行将忽视 try 程序块中剩余的语句,连续执行程序块后面的语句;假如在 try 程序块中没有抛出反常,那么 catch 块将被忽视;程序将连续执行 try-catch 下面的语句例如:try System.out.println “开头 ”;/1 int x=4/0;/2 System.out.p
6、rintln “执行 ”;/3 catchException e System.out.println “发生反常 ”;/4 System.out.println “反常处理外部 ” ; 名师归纳总结 这是发生反常的情形,在try 块里次序执行,先打出“ 开头”,没有反常连续执行,当第 2 页,共 11 页执行到第 2 行时,由于0 不能做除数,所以会发生一个算术反常;这个时候就会跳过try 块里剩下的语句转去执行catch 块中的内容; 所以第 3 行就不能执行; 跳到 catch 块中执行第4- - - - - - -精选学习资料 - - - - - - - - - 句,打出“ 发生反常”
7、学习必备欢迎下载5 行“ 反常处理外部”;执行完以后接着往下次序执行;打出第try System.out.println “开头 ”;/1 int x=4/2;/2 System.out.println “执行 ”;/3 catchException e System.out.println “发生反常 ”;/4 System.out.println “反常处理外部 ” ; 这是正常情形,在 try 块里次序执行,先打出“ 开头”,没有反常连续执行,当执行到 第 2 行时,得到 x 的值为 2,不会有反常;这个时候连续执行到第 3 行,打出“ 执行”;因 为在 try 块中没有任何反常,执行完
8、以后接着往下次序执行;打出第 5 行“ 反常处理外部”;在 Throwable 类中有两个方法,可以用于猎取抛出反常的信息getMessage printStackTrace 6、 抛出反常在一个 try-catch 语句中,当有多个catch 块的时候,它们被次序检查在检查过程中,留意反常的匹配关系是很重要的当一个反常被抛出,与它相匹配的catch 块被执行, 其它的 catch 块, 就被忽视掉不再执行名师归纳总结 - - - - - - -第 3 页,共 11 页精选学习资料 - - - - - - - - - 学习必备 欢迎下载假如没有 catch 块匹配抛出的反常,那么系统会在堆栈中
9、搜寻,找到一个匹配的捕获方 法;假如仍旧没有找到,那么系统将处理抛出反常什么叫反常和 catch 块相匹配:1、抛出的反常和捕获的反常是同一个类 2、抛出的反常是捕获反常的子类3、多个catch 块中 假如捕获的反常之间有继承关系那么不要把父类放在子类之前(这种做法也不被答应)4、尽量不要偷懒使用具体反常类而不要使用Exception 例如 : try int a= new int 4 ; System. out .printlna6;/1 int i=3/0;/2 catch java.lang.ArithmeticException e/ 捕获第 2行反常 System. out .pri
10、ntln 算术错误 ; catch java.lang.ArrayIndexOutOfBoundsException e / 捕获第 1行反常 System. out .println 数组下标越界 ; 不同的反常由不同的catch 块进行捕获;发生反常时由相应的catch 块进行处理;Catch 块中怎么捕获反常?try int i=3/0; catchjava.lang.ArithmeticException e/ System.out.println 算术错误 ; try int i=3/0; 抛出反常和捕获反常是同一个类catchjava.lang.Exception e/ 抛出反常是
11、捕获反常的子类 System.out.println 算术错误 ; 名师归纳总结 - - - - - - -第 4 页,共 11 页精选学习资料 - - - - - - - - - 学习必备 欢迎下载try int a= new int 4 ; System. out .printlna6; catch java.lang. Exception e System. out .println 发生反常 ; catch java.lang.ArrayIndexOutOfBoundsException e System. out .println 数组下标越界 ; 这 种 方 式 不 被 允 许 ,
12、 因 为 catch 块 前 一 个 异 常 Exception 是 后 一 个 异 常 ArrayIndexOutOfBoundsException 的父类;所以有反常前一个反常 catch 块都捕 获了;后一个 catch 块永久不会被执行;编译会出错;try int a= new int 4 ; System. out .printlna6; catch java.lang.ArrayIndexOutOfBoundsException e System. out .println 数组下标越界 ; catch java.lang.Exception e System. out .prin
13、tln 发生反常 ; 这种方式答应;假如有数组下标越界反常由第一个 由其次个 catch 块处理;catch 块处理;假如有其它反常7、假如有一块代码不管是否发生反常抛出都要被执行,我们使用关键字finally这样的机制有助于我们进行系统资源的回收;比如:在数据库操作时,假如发生了反常,那么数据库连接就可能不会关闭,而始终长驻内存;在进行IO 文件读取和写入时,假如发生了反常就可能流不会关闭;所以使用 finally 可以解决这样的问题;Try catch finally 名师归纳总结 - - - - - - -第 5 页,共 11 页精选学习资料 - - - - - - - - - 学习必备
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 异常 知识点
限制150内