2023年11月29日发(作者:)
教 案
课程名称: 异常
适用专业: 蓝桥班
总 课 时: 4
任课教师:
职 称: 讲师
蓝桥学院制
二〇一九年八月一日
1
填写说明
1.教案编写要求内容简明、条理清楚、教学目的明确、教学内容设置
合理、重点难点清晰;以简案为主。
2.教案按一个教学单元或者一个具体的项目、任务进行编制,一个教
学单元、项目或者任务原则上为2-4课时,具体的课时可根据实际情况而
定。
3.单元内容:指本教学单元的主题内容,可以是课题、训练项目、工作
任务或是教学模块。
蓝桥学院课程教案
单元内容单元序号17
异常
单元课时4多媒体教学教学手段
教学方法讲授法
教学课型█理论 □实训
1. 熟练掌握异常的处理;
2. 理解使用自定义异常实现程序设计。
能力目标
教
学
目
标
知识目标
1. 异常的类别;
2. 异常处理;
3. 自定义异常类;。
1. try….cath…finally结构
教学重点
(必须达成的)
任
务
定
位
教学难点
(不利因素)
1. throw语句
2. throws选项
1. 把握详略,总控时间
教学关键点
(克服困难)
2. 知识点阐明
教学过程设计
1. 异常
在实际工作中,我们遇到的情况不可能是非常完美的。比如:你写的某个模块,
用户输入不一定符合你的要求;你的程序要打开某个文件,这个文件可能不存在
或者文件格式不对;你要读取数据库的数据,数据可能是空的;我们的程序再运行
着,但是内存或硬盘可能满了等等。
软件程序在运行过程中,非常可能遇到刚刚提到的这些问题,我们称之为
时间(分钟)
3
异常,英文是:Exception,意思是例外。遇到这些例外情况,或者叫异常,我们
怎么让写的程序做出合理的处理,安全的退出,而不至于程序崩溃呢?我们本章
就要讲解这些问题。
2. 异常的基本概念
异常指程序运行过程中出现的非正常现象,例如用户输入错误、除数为零、
需要处理的文件不存在、数组下标越界等。
在Java的异常处理机制中,引进了很多用来描述和处理异常的类,称为异
常类。异常类定义中包含了该类异常的信息和对异常进行处理的方法。
所谓异常处理,就是指程序在出现问题时依然可以正确的执行完。
我们开始看我们的第一个异常对象,并分析一下异常机制是如何工作的。
Java是采用面向对象的方式来处理异常的。处理过程:
1. 抛出异常:在执行一个方法时,如果发生异常,则这个方法生成代表该
异常的一个对象,停止当前执行路径,并把异常对象提交给JRE。
2. 捕获异常:JRE得到该异常后,寻找相应的代码来处理该异常。JRE
在方法的调用栈中查找,从生成异常的方法开始回溯,直到找到相应的异常处理
代码为止。
3. 异常分类
JDK 中定义了很多异常类,这些类对应了各种各样可能出现的异常事件,所
有异常对象都是派生于Throwable类的一个实例。如果内置的异常类不能够满足
需要,还可以创建自己的异常类。
Java对异常进行了分类,不同类型的异常分别用不同的Java类表示,所有异
常的根类为ble,Throwable下面又派生了两个子类:Error和
Exception
Error:
Error是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错
误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的
问题。例如,Java虚拟机运行错误(Virtual MachineError),当 JVM 不再有继续执
行操作所需的内存资源时,将出现 OutOfMemoryError。这些异常发生时,Java
虚拟机(JVM)一般会选择线程终止。
Error表明系统JVM已经处于不可恢复的崩溃状态中。我们不需要管它。
Exception:
Exception是程序本身能够处理的异常,如:空指针异常
(NullPointerException)、数组下标越界异常(ArrayIndexOutOfBoundsException)、类
型转换异常(ClassCastException)、算术异常(ArithmeticException)等。
Exception类是所有异常类的父类,其子类对应了各种各样可能出现的异
常事件。 通常Java的异常可分为:
1. RuntimeException 运行时异常
2. CheckedException 已检查异常
Error与Exception的区别
1. 我开着车走在路上,一头猪冲在路中间,我刹车。这叫一个异常。
2. 我开着车在路上,发动机坏了,我停车,这叫错误。系统处于不可恢
复的崩溃状态。发动机什么时候坏?我们普通司机能管吗?不能。发动机什么时候
4
坏是汽车厂发动机制造商的事。
4. 异常分类
RuntimeException运行时异常:
ArithmeticException异常:试图除以0
NullPointerException异常
ClassCastException异常
ArrayIndexOutOfBoundsException异常
NumberFormatException异常
CheckedException已检查异常
所有不是RuntimeException的异常,统称为Checked Exception,又被称
为“已检查异常”,如IOException、SQLException等以及用户自定义的Exception
异常
5. 异常的处理
一、 try….catch…finally…
捕获异常是通过3个关键词来实现的:try-catch-finally。用try来执行一段程
序,如果出现异常,系统抛出一个异常,可以通过它的类型来捕捉(catch)并处理
它,最后一步是通过finally语句为异常处理提供一个统一的出口,finally所指定
的代码都要被执行(catch语句可有多条;finally语句最多只能有一条,根据自己的
需要可有可无)。
上面过程详细解析:
1. try:
2. catch:
3. finally:
程序首先执行可能发生异常的try语句块。如果try语句没有出现异常则执
行完后跳至finally语句块执行;如果try语句出现异常,则中断执行并根据发生的
异常类型跳至相应的catch语句块执行处理。catch语句块可以有多个,分别捕获
不同类型的异常。catch语句块执行完后程序会继续执行finally语句块。finally
语句是可选的,如果有的话,则不管是否发生异常,finally语句都会被执行。
二、 声明异常(throws子句)
当CheckedException产生时,不一定立刻处理它,可以再把异常throws出
去。
在方法中使用try-catch-finally是由这个方法来处理异常。但是在一些情况
下,当前方法并不需要处理发生的异常,而是向上传递给调用它的方法处理。
如果一个方法中可能产生某种异常,但是并不能确定如何处理这种异常,则
应根据异常规范在方法的首部声明该方法可能抛出的异常。
如果一个方法抛出多个已检查异常,就必须在方法的首部列出所有的异常,
之间以逗号隔开。
6. 自定义异常
1.在程序中,可能会遇到JDK提供的任何标准异常类都无法充分描述清楚
我们想要表达的问题,这种情况下可以创建自己的异常类,即自定义异常类。
2.自定义异常类只需从Exception类或者它的子类派生一个子类即可。
5
3.自定义异常类如果继承Exception类,则为受检查异常,必须对其进行处
理;如果不想处理,可以让自定义异常类继承运行时异常RuntimeException类。
4.习惯上,自定义异常类应该包含2个构造器:一个是默认的构造器,另一
个是带有详细信息的构造器。
思考题
与作业
教材、资料
附件
教学反思
6


发布评论