专题五 异常处理(课件)-《计算机程序设计》(电工版第二版)高考备考讲练测(吉林省)

2024-09-20
| 30页
| 224人阅读
| 1人下载
精品

内容正文:

异常处理 计算机程序设计 专题复习讲练测 电工版第二版 掌握国家标准《机械制图》中有关图幅、比例、字体图线等基本规定。 考纲要求 一 考试内容: 异常处理机制;try-catch-finally语句;抛出异常。 知识点要求: 1.了解异常的概念,理解异常处理机制。 2.掌握用try-catch-finally语句捕获异常。 3.掌握throw语句、throws子句和声明抛出异常。 知识点梳理 二 异常 异常就是不可预测的不正常情况。 程序执行期间发生的不正常情况,会打断正常的指令流,Java自动创建一个异常对象,并执行相应的代码去处理该事件。 异常可分为两大类: java.lang.Exception 类与java.lang.Error 类。这两个类均继承了 java.lang.Throwable类。 Error与Exception类统称为异常类。 知识点梳理 二 Throwable Throwable中的常用方法: ① public void printStackTrace() :打印异常的详细信息。 包含了异常的类型,异常的原因,还包括异常出现的位置,在开发和调试阶段,都得使用printStackTrace。 ② public String getMessage() :获取发生异常的原因。 提示给用户的时候,就提示错误原因。 ③ public String toString() :获取异常的类型和异常描述信息(不用)。 知识点梳理 二 异常 Error:表示编译时和系统错误(外部错误),专门用来处理严重影响程序运行的错误比如OutOfMemoryError。这类错误发生时,Java运行时环境(JRE)通常无法做什么恢复动作,因此应用程序不应该捕获Error。 知识点梳理 二 IOException Exception 类包含了一般性的异常,通常这些异常在被捕捉到之后便可做妥善的处理,以确保程序继续运行。 Exception类扩展出了数个子类,其中 IOException 和 RuntimeException 是较常用的两种。 (1)IOException 是一个检查型异常(Checked Exception),是所有与输入输出(I/O)操作相关的异常的父类。当程序在执行I/O操作时遇到问题,比如文件读写、网络通信等,就可能抛出 IOException 或其子类异常。 知识点梳理 二 IOException IOException 的子类 IOException 有许多子类,用于表示不同类型的I/O错误。 1)FileNotFoundException:当尝试打开不存在的文件进行读取或写入时抛出。 2)EOFException:当输入过程中意外到达文件或流的末尾时抛出。 3)MalformedURLException:当尝试创建一个格式不正确的URL时抛出。 4)SocketException:当在使用套接字时发生错误时抛出。 5)UnknownHostException:当无法识别主机名或IP地址时抛出。 知识点梳理 二 RuntimeException 在Java中,RuntimeException 是一个非检查型异常(Unchecked Exception),它是所有运行时异常的父类。与检查型异常(如 IOException)不同,RuntimeException 不需要在方法签名中声明,也不强制要求在代码中进行捕获。这类异常通常表示编程错误、不合理的操作或者不可预测的情况。 知识点梳理 二 RuntimeException 常见的 RuntimeException 子类 1)NullPointerException:当程序试图访问或操作一个空对象引用时抛出。 2)ArrayIndexOutOfBoundsException:当程序试图访问数组的非法索引时抛出。 3)ClassCastException:当试图将对象强制转换为不是实例的类时抛出。 4)IllegalArgumentException:当传递给方法的参数不合法时抛出。 5)ArithmeticException:当算术运算出现错误,如除以零时抛出。 知识点梳理 二 异常处理 异常处理关键字 1)try:尝试块,用于包围可能会抛出异常的代码。 2)catch:捕获块,用于处理try块中抛出的异常。 3)finally:最终块,无论是否发生异常,都会执行的代码块。 4)throw:用于手动抛出异常。 5)throws:用于方法签名,声明该方法可能会抛出的异常 知识点梳理 二 异常 异常处理是由try 、catch 和 finally3 个关键字组成的程序块,其语法如下: try { //要检查的程序语句; }catch (异常类对象名称){ //异常发生时的处理语句; }finally { //一定会执行的程序代码; } 知识点梳理 二 抛出异常throw throw用在方法内,用来抛出一个异常对象,将这个异常对象传递到调用者处,并结束当前方法的执行。 语法格式: throw new 异常类名(参数); 案例:throw new NullPointerException("空指针异常了"); 知识点梳理 二 异常 声明异常throws 声明异常:将问题标识出来,报告给调用者。如果方法内通过throw抛出了编译时异常,而没有捕获处理,那么必须通过throws进行声明,让调用者去处理。 关键字throws运用于方法声明之上,用于表示当前方法不处理异常,而是提醒该方法的调用者来处理异常(抛出异常)。 语法格式: 修饰符 返回值类型 方法名(参数) throws 异常类名1,异常类名2…{ } 知识点梳理 二 自定义异常 为了处理各种异常,Java 可通过继承的方式编写自己的异常类。因为所有可处理的异常 类均继承自 Exception类,所以自定义异常类也必须继承这个类。 异常类如何定义: 1. 自定义一个编译期异常: 自定义类并继承于 java.lang.Exception 。 2. 自定义一个运行时期的异常类:自定义类并继承于 java.lang.RuntimeException 。 格式: public class RegisterException extends Exception { } 限时练习 三 1. 在Java中,以下( )关键字用于声明一个方法可能会抛出异常。 A. try B. catch C. finally D. throws 【答案】D 【解析】throws关键字用于方法签名中,声明该方法可能会抛出的异常。try用于包围可能会抛出异常的代码块,catch用于捕获和处理异常,finally用于定义无论是否发生异常都会执行的代码块。 限时练习 三 2. 以下( )异常是Java中的运行时异常。 A. IOException B. SQLException C. ArithmeticException D. ClassNotFoundException 【答案】C 【解析】ArithmeticException是Java中的一个运行时异常(RuntimeException的子类),它会在算术运算中出现错误时抛出,例如除以零。IOException、SQLException和ClassNotFoundException都是检查型异常,必须在代码中显式处理。 限时练习 三 3. 在Java中,当try块中发生异常时,以下( )选项描述了异常处理的过程。 A. 只有catch块会执行 B. 只有finally块会执行 C. catch块和finally块都会执行 D. try块和finally块都会执行 【答案】C 【解析】 当try块中发生异常时,控制流会跳转到匹配该异常类型的catch块。无论是否发生异常,finally块都会执行,所以正确答案是catch块和finally块都会执行。 限时练习 三 4. 在Java中,以下( )类是所有异常类的根类。 A. Error B. Throwable C. Exception D. RuntimeException 【答案】B 【解析】 所有异常类都是Throwable类的子类。Error类表示严重的问题,大多数情况应用程序不应该捕获这类异常。Exception类是Throwable的子类,它用于表示程序可能恢复的异常情况。RuntimeException是Exception的子类,表示运行时错误。 限时练习 三 5. 在Java中,以下说法是正确的的是( ) A. 检查型异常必须被捕获或声明抛出 B. 运行时异常必须被捕获 C. finally块中的代码永远不会执行 D. 你可以在没有try块的情况下使用catch块 【答案】A 【解析】检查型异常(Checked Exceptions)必须被显式地捕获(使用try-catch块)或者在方法签名中声明抛出(使用throws关键字)。运行时异常(Unchecked Exceptions)不需要显式地捕获。finally块中的代码总是会执行,无论是否发生异常。catch块必须与try块一起使用,不能单独存在。 限时练习 三 6. Java中的所有异常都是Exception类的实例。( ) 【答案】错误 【解析】并非所有异常都是Exception类的实例。Java中的异常分为Exception和Error两大类,Exception类及其子类是异常,而Error类及其子类表示错误,它们都是Throwable的子类。 限时练习 三 7. 在Java中,try块后面必须跟着至少一个catch块或一个finally块。( ) 【答案】正确 【解析】 在Java中,try块后面必须跟着至少一个catch块或一个finally块,或者两者都有,但不能单独存在。 限时练习 三 8. 在catch块中可以重新抛出捕获的异常。( ) 【答案】正确 【解析】在catch块中可以使用throw关键字重新抛出捕获的异常,也可以抛出一个新的异常。 限时练习 三 9.如果try块中包含return语句,finally块将不会执行。( ) 【答案】错误 【解析】即使try块中包含return语句,finally块也会执行。finally块总是在退出try块之前执行,无论是因为正常退出还是因为遇到return语句。 限时练习 三 10. Java中的try块只能有一个。( ) 【答案】正确 【解析】 在一个try-catch-finally结构中,只能有一个try块,但可以有多个catch块和一个finally块。 限时练习 三 11. Java中的异常处理机制可以处理任何运行时错误。( ) 【答案】错误 【解析】 Java的异常处理机制可以处理异常情况,但并不是所有的运行时错误都可以通过异常处理来恢复。例如,栈溢出错误(StackOverflowError)和内存溢出错误(OutOfMemoryError)通常无法通过异常处理来恢复。 限时练习 三 12. 在Java中,你可以声明一个方法抛出多个异常。( ) 【答案】正确 【解析】 在Java中,可以在方法签名中使用throws关键字声明该方法可能抛出的多个异常,每个异常类型之间用逗号分隔。 限时练习 三 13.填写下列代码片段中缺失的部分,以便正确地抛出自定义异常NegativeValueException 【答案】 throw new NegativeValueException 限时练习 三 14.填写下列代码片段中缺失的部分 【答案】FileNotFoundException e 内容小结 五 谢谢 $$

资源预览图

专题五 异常处理(课件)-《计算机程序设计》(电工版第二版)高考备考讲练测(吉林省)
1
专题五 异常处理(课件)-《计算机程序设计》(电工版第二版)高考备考讲练测(吉林省)
2
专题五 异常处理(课件)-《计算机程序设计》(电工版第二版)高考备考讲练测(吉林省)
3
专题五 异常处理(课件)-《计算机程序设计》(电工版第二版)高考备考讲练测(吉林省)
4
专题五 异常处理(课件)-《计算机程序设计》(电工版第二版)高考备考讲练测(吉林省)
5
专题五 异常处理(课件)-《计算机程序设计》(电工版第二版)高考备考讲练测(吉林省)
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。