还剩7页未读,继续阅读
文本内容:
行知学堂xinzhixuetang程序设计Java教学设计课程名称程序设计Java授课年级_________________________________授课学期_________________________________教师成名_________________________________2023年07月08日计划学课程名称第9章异常处理2+4学时时在程序设计和运行中出现错误是不可避免的尽管Java语言设计规范,提供了编写整洁、安全代码的方法,同时程序员也尽量地避免错误的产生,但是由于各种因素程序出现错内容误被迫中止的现象仍然存在为此Java提供了一套完善的异常处理机制来帮助程序员检分析查可能出现的错误,保证程序的可读性和可维护性Java中将这些不同的错误称为不同的异常并将它们封装到相应的类中,出现错误时就会抛出异常对象本章主要对Java的异常处理机制进行讲解【知识目标】
1.理解异常的概念
2.了解异常的类型
3.了解自定义异常类【技能目标】教学目标与
1.掌握异常的处理方式教学要求
2.掌握自定义异常类的使用【思政育人目标】每个程序设计过程按照软件产品进行设计,从用户需求角度出发,力求做到精益求精教学重点使用try-catch-finally处理异常、使用throws抛出异常、使用throw抛出异常教学难点异常的处理机制教学方式课堂讲解配合ppt演示2学时,上机演练4学时第一学时异常的概念、异常的类型、异常的处理
一、提出需求,导入学习任务教1生活中的异常学•生活中,医生在诊断式会说身体某个部位有异常,该部位的状态和正常的状过态相比有些不同,该部位的功能将受影响程一个人要开车去上班,正常情况下,应该是准时到达公司,然后开始一天的工作,但有时上班路上会有意外情况,例如,车子坏了,只能走路去,导致上班迟到•程序中:在程序中,代码出现错误,程序就会终止运行注意异常指的并不是语法错误,语法错了,编译不通过,不会产生字节码文件,根本不能运行
(2)明确学习方向理解异常的概念了解异常的类型掌握异常的处理方式了解模板方法设计模式
二、知识讲解
(一)异常的概念概念异常是指在程序执行时出现的、中断正常指令流的事件示例int result=10/0;会引发算术异常(ArithmeticException)注意:异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的Java异常是Java提供的一种识别及响应错误的一致性机制异常处理是衡量一门语言是否成熟的标准之一,主流的语言Java、C++、C#等支持异常处理机制异常处理机制可以让程序有更好的容错性,使程序代码更健壮
(二)异常的类型异常的继承体系LError Exception\___________今lOErrorLinkagcError SQLExccption其它子类其它子类Throwablc Throwable类是Java语言中所有错误(error)与异常(Exception)的超类----RuntimeException Error类类及其子类表示运行lO应Exc用ept程ion序—时出现了严重的错误此类错误一般表示代码运行时JVM出现问题,应用程序无法处理此类问题Exception类及其子类规定的异常是程序自身可以处理的异常,又分为两类运行时异常和编译时异常.运行时异常2RuntimeException类及其子类,表示JVM在运行期间可能出现的异常,即运行时异常运行时异常在编译阶段会被忽略,但是可以通过代码调试被解决Java的运行时异常如下图所示.可检查时异常3CheckedException类及其子类,表示外部原因引起的异常,及可检查异常可检查异常发生在编译阶段,Java编译器会强制程序去捕获此类异常可检查异常都需要在代码进行处理,它是可以预测的,可以进行合理的处理常见的可检查异常如下图所示异常描述应用程序试图加载类时,找不到相应的ClassNotFoundException类,抛出该异常一个线程被另一个线程中断,抛出该异InterruptedException常请求的变量不存在NoSuchFieldException拒绝访问一个类的时候,抛出该异常HlegalAccessException发生了某种问题时,抛出该异常lOException I/O注除运行时异常之外的异常都是可检查异常
(三)异常的处理Java程序可以在任何时间(或任何位置)发生异常因此,需要知道如何处理这些异常处理异常是开发健壮的应用时必需的属性处理异常意味着在发生异常时将程序的执行转移到适当的处理器Java中常见的异常处理的方式有3种
①该方法不处理,而是声明抛出,由该方法的调用者来处理(throws)
②在方法中使用try-catch-finally的语句块来处理异常.使用处理异常1try-catch-finally语法(try//程序代码块(异常类型)}catch e{//对捕获的异常进行相应的处理}finally{//代码块)trytry用于定义可能发生异常的代码块catchcatch用于匹配特定类型的异常一个try块可能有多个catch子句,用于处理多个异常finallyfinally确定将在try块之后始终执行的代码块即使在异常的情况下演示案例使用try-catch处理算术异常(详见本章PPT).使用关键字抛出异常2throws异常传播当某个方法抛出了异常时,如果当前方法没有捕获异常,异常就会被抛到上层调用方法,直到遇到某个try-catch被捕获为止作用throws关键字用在方法签名中,用于声明该方法可能抛出的异常如果方法不捕获被检查出的异常,那么方法必须声明它可以抛出的这些异常,用于告知调用者此方法有异常语法数据类型方法名(形参列表)异常类异常类,异常类方法体;throws1,2,……0{)注使用throws关键字可以抛出多个异常throws声明的方法表示此方法不处理异常,而交给方法的调用者进行处理因此,不管方法是否发生异常,调用者都必须进行异常处理演示案例使用throws抛出异常后必须由调用者使用try-catch处理(详见本章PPT)o.使用关键字抛出异常3throw作用throw关键字用于方法内部,用来直接抛出一个异常,后接一个可抛出的异常对象语法异常对象();throw new注异常对象必须是Throwable类或其子类的对象如果是自定义异常类,也必须是Throwable的直接或间接子类如果throw抛出的是Error RuntimeException或它们的子类异常对象,无须使用throws关键字或try-catch对异常进行处理步骤
①创建某个Exc叩tion的实例(异常对象)
②用throw语句抛出演示案例使用throw关键字抛出算术异常(详见本章PPT)异常对象异常对象包含关于异常的有价值的信息,可以通过Throwable类中的实例方法获取有关异常信息Throwable类的方法如下图所示方法声明功能描述()返回该异常对象的信息String getMessage返回异常类的全名及异常对象信息String toStringO()在控制台上打印对象和它的void printStackTraceTh rowable调用堆栈信息()返回和该异常对象相关的代表堆栈跟踪的一个堆栈跟踪元StackTraceElement[]getStackTrace素的数组
三、知识巩
(1)回顾上课前的学习目标,对本节课知识点进行总结
(2)使用第六章课后作业第二学时(自定义异常、异常的使用原则)顾上节课内容
(1)对上节课布置的任务以及学生提出的问题进行答疑解惑
(2)回顾上节课内容,引出本节课主题
(3)明确学习方向了解自定义异常掌握异常的使用原则
二、知识讲解
(一)自定义异常(了解)方式通过扩展Exception类或RuntimeException类来创建自定义的异常要求自定义异常类应包含和异常相关的信息有助于准确地分析并处理异常步骤
1.创建自定义异常类,并继承Exception类/RuntimeException类
2.在方法中通过throw关键字抛出异常对象
3.如果在当前方法中处理异常,可以使用try-catch语句捕获异常并处理;否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作
4.在调用会异常的方法的调用者中捕获并处理异常演示案例自定义异常处理除数为0的问题(详见本章PPT)
(二)异常的使用原则在当前方法声明中使用try-catch语句捕获异常一个方法被覆盖时,覆盖它的方法必须抛出相同的异常或其子类如果父类抛出多个异常,则覆盖方法必须抛出那些异常的一个子集,不能抛出新异常
三、知识巩
(1)回顾上课前的学习目标,对本节课知识点进行总结
(2)使用第9章课后作业第三~六课时(上机练习)
一、目标学生根据教材中的操作步骤和教师的演示进行上机练习,完成本章的上xmzr机任务,以及检查学生对相关知识点的掌握情况上机练习完成后将报告通过平台提交给老师
二、上机任务
1.实战训练9-1成绩输入异常(3分)
2.实现书中的演示案例的效果(2分)
三、教师评分教师根据学生对上机任务的完成度给予评分,满分为5分,并纳入平时成绩中习题教材第9章习题教学后记。