2022年异常知识点 .pdf
《2022年异常知识点 .pdf》由会员分享,可在线阅读,更多相关《2022年异常知识点 .pdf(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、学习必备欢迎下载知识点:1、 什么是异常。异常是程序正常执行过程中出现的不正常的情况。例如:人在成长过程中,是个正常的执行过程,但成长过程中会经常生病,这就是异常。为了避免这种不正常的情况,我们会采取一系列措施,比如:从小锻炼身体,吃新鲜干净的食物,营养合理的搭配,以增强我们的体质。提高抗病能力。程序我们为了提高它运行时的健壮性,我们也得采用一些措施。那么怎么提高程序的健壮性呢?JAVA 程序中我通过异常的捕获来增加程序的健壮性。2、 异常捕获的顺序是怎样的呢?当一个异常发生或抛出。那么正常的程序执行序列将被终止,程序将对异常进行处理,我们称之为抛出异常被捕获。JAVA 中通过使用try-ca
2、tch语句把可能抛出异常的语句包起来。例如:前面讲到资源文件类Properties 类在进行文件加载时,使用以下语句捕捉异常。try Properties pro=new Properties(); Pro.load(new FileInputStream( “ c:/abc.properties” ); catch(IOException e)System.out.println(e); 3、 异常的类型是怎样的呢?所有异常类的超类是Throwable 。在Throwable下有两个子类,一个是Error ,另一个是Exception 。Error 是错误,程序员无法控制,Exception
3、 是异常,程序员可以通过异常捕获加以控制。例如: 电脑运行中中毒了,我们可以通过杀毒软件来处理,处理完了以后可以继续使用, 这叫异常,我们可以控制。但电脑出现了蓝屏或死机的时候,我们就不能进行任何操作了。这就是错误,我们无法控制。4、 程序中异常是怎么发生的呢?String inputStr = JOptionPane.showInputDialog(null, “请输入年龄 ”);int age = Integer.parseInt(inputStr); 以上代码要求用户输入年龄,年龄是个数字。但通过showInputDialog 得到的是个字符串。精选学习资料 - - - - - - -
4、- - 名师归纳总结 - - - - - - -第 1 页,共 11 页学习必备欢迎下载所以我们需要Integer.parseInt(inputStr) ,将字符串转成数字。这个时候,如果用户输入的不是 一 个 数 字 型 的 字 符 串 , 而 是 一 个 非 数 字 的 字 符 串 ( 如 字 母 、 符 号 ) , 在 进 行Integer.parseInt(inputStr) 转化是就会发生一个异常。如果我们不对它作任何处理,程序就有可能因此终止掉。5、 怎样捕获一个异常呢。a、 把正常运行的代码放在try 块里。b、 如果程序中出现了异常就把异常抛出在catch 中,如果catch
5、中能捕获抛出的异常。那么就会进行处理。处理的代码写在catch 块中。try 程序块里面的语句是按顺序执行的语句当 try 程序块里面的语句抛出一个异常的时候,程序的控制转向了相匹配的catch 程序块, catch 程序块里面的语句被执行。当异常发生后, 程序执行将忽略try 程序块中剩余的语句,继续执行程序块后面的语句。如果在 try 程序块中没有抛出异常,那么catch 块将被忽略。程序将继续执行try-catch下面的语句例如:try System.out.println( “ 开始 ” );/1 int x=4/0;/2 System.out.println( “ 执行 ” );/3
6、 catch(Exception e) System.out.println( “ 发生异常 ” );/4 System.out.println( “ 异常处理外部” ); 这是发生异常的情况,在try 块里顺序执行,先打出“开始”,没有异常继续执行,当执行到第2 行时,因为0 不能做除数,所以会发生一个算术异常。这个时候就会跳过try 块里剩下的语句转去执行catch 块中的内容。 所以第 3 行就不能执行。 跳到 catch 块中执行第4精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 11 页学习必备欢迎下载句,打出“发生异常” 。
7、执行完以后接着往下顺序执行。打出第5 行“异常处理外部” 。try System.out.println( “ 开始 ” );/1 int x=4/2;/2 System.out.println( “ 执行 ” );/3 catch(Exception 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.println(a6);/1 int i=3/0;/2 catch (java.lang.ArithmeticException e)/捕获第 2行异常System.out.println(算术
10、错误 ); catch (java.lang.ArrayIndexOutOfBoundsException e) /捕获第 1行异常System.out.println(数组下标越界 ); 不同的异常由不同的catch 块进行捕获。发生异常时由相应的catch 块进行处理。Catch 块中怎么捕获异常?try int i=3/0; catch(java.lang.ArithmeticException e)/抛出异常和捕获异常是同一个类System.out.println( 算术错误 ); try int i=3/0; catch(java.lang.Exception e)/ 抛出异常是捕获
11、异常的子类System.out.println( 算术错误 ); 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 11 页学习必备欢迎下载try int a= new int 4 ; System.out.println(a6); 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.println(a6); catch (java.lang.ArrayIndexOutOfBoundsException e) System.out.println(数组下标越界 ); catch (java.lang.Exception e) System.out.println(发生异
13、常 ); 这种方式允许。如果有数组下标越界异常由第一个catch 块处理。如果有其它异常由第二个 catch 块处理。7、如果有一块代码不管是否发生异常抛出都要被执行,我们使用关键字finally这样的机制有助于我们进行系统资源的回收。比如:在数据库操作时,如果发生了异常,那么数据库连接就可能不会关闭,而一直长驻内存。在进行IO 文件读取和写入时,如果发生了异常就可能流不会关闭。所以使用finally 可以解决这样的问题。Try catch() finally 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 11 页学习必备欢迎下载这样
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年异常知识点 2022 异常 知识点
限制150内