Java程序设计-项目驱动式教程07学生信息管理系统异常处理_第1页
Java程序设计-项目驱动式教程07学生信息管理系统异常处理_第2页
Java程序设计-项目驱动式教程07学生信息管理系统异常处理_第3页
Java程序设计-项目驱动式教程07学生信息管理系统异常处理_第4页
Java程序设计-项目驱动式教程07学生信息管理系统异常处理_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

讲师:XXX时间:

月目录CONTENTWS01.项目开发环境搭建02.学生成绩管理03.学生基本信息管理04.不同类别学生信息管理05.学生基本信息查找与计算目录CONTENTWS06.使用集合实现学生信息管理07.学生信息管理系统异常处理08.使用文件实现学生信息存储09.使用JDBC实现学生信息管理10.图书管理系统设计与实现项目

学生信息管理系统异常处理项目7学生信息管理系统异常处理任务一异常处理基础任务二

异常处理方法知识目标了解异常的概念和分类,以及异常处理机制、异常处理的基本原则。掌握捕获异常的方法,包括使用

try-catch

语句、多重

catch

语句、嵌套

try-catch语句和try-catch-finally语句。掌握抛出异常的方法,包括使用throw语句和throws语句。掌握自定义异常的方法。能力目标能够分析系统异常,正确捕获并处理异常。能够根据系统需求自定义异常。素养目标培养严谨的逻辑思维,以及系统解决问题的能力。培养面对问题时冷静分析、及时修正的职业素养。点击跳过情境扫码观看“学生信息管理系统异常处理”视频,讨论并回答下列问题问题1:在学生信息管理系统中,可能出现哪些异常?问题2:如何使用

Java

对学生信息管理系统进行异常处理?扫码学习学生信息管理系统异常处理任务一异常处理基础1.异常的概念错误程序错误由系统内部问题引发,如资源耗尽或逻辑崩溃,系统将终止进程并记录日志,不纳入本项目处理范畴。。异常程序异常源于外部环境异常或用户误操作,通过结构化异常处理可有效拦截并修复,保障系统持续稳定运行。2.异常的分类异常分类

异常分为编译时异常和运行时异常。编译时异常需强制处理,否则编译失败;运行时异常可选处理,不影响编译过程。异常处理机制Java通过Exception类实现异常管理,所有异常均为Exception子类,支持统一处理与扩展机制。常见异常类的层次结构其中,RuntimeException

类以外的类属于编译时异常类,RuntimeException

类及其子类属于运行时异常类。异常类型异常类说

明编译时异常ClassNotFoundException找不到类异常IOExceptionI/O操作异常FileNotFoundException找不到文件异常SQLException数据库操作异常运行时异常ArithmeticException算术异常,如被零除IndexOutOfBoundsException索引越界异常ArrayIndexOutOfBoundsException数组索引越界异常IllegalArgumentException方法接收非法参数异常NullPointerException非法使用空引用异常NumberFormatException数字格式化异常NoSuchElementException访问元素不存在异常InputMismatchException输入数据类型不匹配异常常见异常类及说明Java

遵循Java

遵循高内聚、低耦合的设计原则,一般将通用异常类放在

java.lang

基础包中,而将与具体功能相关的异常类放在相应的包中,避免基础包过于庞大。例如,将IOException

类及其大多数子类放在

java.io

包中,将

SQLException

类及其大多数子类放在java.sql包中。(4)(3)(2)(1)printStackTrace(PrintStreams)printStackTrace()toString()getMessage()返回异常的详细信息。如果该异常没有详细信息,则返回null。返回异常的简短描述。将异常的跟踪信息输出到标准错误流。将异常的跟踪信息输出到指定输出流。获取异常信息的方法1.异常处理机制程序健壮性异常处理Java的异常处理机制确保程序运行中能自动执行异常处理代码,提升程序稳定性。

通过有效管理运行时异常,Java程序能够避免意外崩溃,增强其健壮性和可靠性。异常抛出

程序运行中遇异常,自动生成异常对象,系统或用户主动触发,传递异常详情。异常捕获Java系统接收异常,搜索匹配处理方法,精准交付异常对象,执行异常管理流程。2.异常处理基本原则仅用于处理非正常情况。(1)优先捕获具体异常。(3)保持异常的原子性。(5)只捕获可处理的异常。(2)避免忽略捕获的异常。(4)最小化异常处理单元。(6)学生信息管理系统最常见的异输入异常种类数据格式异常

输入的学生信息不符合系统要求,如姓名和学号包含非法字符、邮箱格式错误、联系方式长度有误等。(1)数据类型异常输入数据的类型与系统定义的类型不匹配,如年龄和成绩为非数值类型等。(2)数据范围异常输入的数据超出合理范围,如成绩小于

0

分或大于

100

分、年龄为负数等。(3)数据缺失异常缺失某些必要的学生信息,如姓名、学号和班级为空等。(4)此外,学生信息管理系统还可能出现数据库操作异常和文件操作异常等。异常处理基础异常概述异常处理概述任务二异常处理方法1.try-catch语句在Java中,try-catch语句是最基础的捕获异常语句try{//可能出现异常的语句块}catch(异常类型

异常对象名){ //捕获异常//处理异常的语句块}语法格式(1)

try

子句用于指定捕获异常的范围,即可能出现异常的语句块,该语句块在运行过程中可能生成一个或多个异常对象。(2)

catch

子句用于捕获并处理

try

子句中生成的异常对象,其中的异常类型必须是Exception

类或其子类,用于指定能够捕获的异常类型,异常对象名通常用于获取异常的相关信息。try-catch

语句的执行过程是:执行

try

子句中的语句块,如果出现异常,且异常类型与

catch

子句指定的异常类型匹配,则执行

catch

子句捕获并处理该异常,当异常类型不匹配时终止程序,并在控制台输出异常信息;如果

try

子句中的语句块没有出现异常,则跳过catch子句,继续执行try-catch语句后面的语句。需要注意的是,异常处理完成后,程序会继续执行

try-catch

语句后面的语句,除非在catch子句中显式终止程序。【运行结果】实例:7-1

使用try-catch语句捕获并处理被零除异常【参考代码】/*ExceptionTest.java*/packageproject7.example7_1;publicclassExceptionTest{……(详见教材)

2.多重catch语句多重catch语句语法格式try{//可能出现异常的语句块}catch(异常类型1异常对象名1){ //捕获异常//处理异常的语句块1}catch(异常类型2异常对象名2){ //捕获异常//处理异常的语句块2}……catch(异常类型n异常对象名n){ //捕获异常//处理异常的语句块n}多重

catch

语句的执行过程是:执行

try

子句中的语句块,如果出现异常,依次将异常类型与每个

catch

子句的异常类型匹配,并执行第一个匹配成功的

catch

子句,同时跳过后面的catch子句,继续执行try-catch语句后面的语句。需要注意的是,当使用多个catch子句时,子句中的异常类型必须是先子类后父类,否则会报错。【问题分析】实例:7-2

使用多重catch语句捕获并处理被零除和数组索引越界异常

try

子句中进行除零运算,为数组元素赋值,然后在第一个

catch子句中捕获

ArithmeticException

异常并输出异常信息,在第二个

catch

子句中捕获ArrayIndexOutOfBoundsException异常并输出异常信息。【运行结果】【参考代码】/*CatchExceptionTest.java*/packageproject7.example7_2;importjava.util.Scanner;……(详见教材)

3.嵌套try-catch语句嵌套try-catch语句语法格式try{ //外层try子句//可能出现异常的语句块1try{ //内层try子句//可能出现异常的语句块2}catch(异常类型2异常对象名2){ //捕获内层异常//处理异常的语句块2}}catch(异常类型1异常对象名1){ //捕获外层异常//处理异常的语句块1}如果内层

try

子句中出现的异常没有被内层

catch

子句捕获,异常就会被传递到外层catch子句中进行异常类型匹配。实例:7-3

使用嵌套try-catch语句捕获并处理被零除和数组索引越界异常【问题分析】

在内层

try-catch

语句中捕获被零除异常,在外层

try-catch

语句中捕获数组索引越界异常。【运行结果】【参考代码】/*NestedExceptionTest.java*/packageproject7.example7_3;publicclassNestedExceptionTest{……(详见教材)

4.try-catch-finally语句

Java

中,try-catch-finally

语句中的

finally

子句是异常处理的统一出口。无论程序是否出现异常,finally

子句中的语句块最终都会执行,因此

finally

子句常用于释放资源、关闭连接等。try-catch-finally语句语法格式try{//可能出现异常的语句块}catch(异常类型

异常对象名){ //捕获异常//处理异常的语句块}……finally{//无论是否出现异常都会执行的语句块}【运行结果】实例:7-4

使用try-catch-finally语句【参考代码】/*FinallyExceptionTest.java*/packageproject7.example7_4;publicclassFinallyExceptionTest{……(详见教材)

1.throw语句语法格式thrownew异常类型([异常信息]);

其中,new

表示创建一个异常类对象;异常类型必须是

Exception

类或其子类;异常信息表示需要输出的信息。【运行结果】实例:7-5

使用throw语句抛出异常【参考代码】/*ThrowTest.java*/packageproject7.example7_5;publicclassThrowTest{……(详见教材)

Exception异常

在不确定异常类型时,可以抛出并捕获Exception异常。2.throws语句

如果不希望在方法中对可能出现的异常进行处理,则可以使用

throws

语句声明方法可能抛出的异常,然后将异常传递给调用该方法的代码进行处理。throws语句声明抛出的异常的语法格式[修饰符]返回值类型

方法名([形参列表])throws异常类型列表{//方法体}

其中,异常类型列表可以是一种或多种异常类型,多种异常类型之间使用英文逗号隔开。通常情况下,如果一个方法声明了抛出的异常,在调用该方法时需要使用

try-catch语句捕获并处理异常类型列表中的所有异常。【运行结果】实例:7-6

使用throws语句声明抛出的异常【参考代码】/*ThrowsTest.java*/packageproject7.example7_6;importjava.util.InputMismatchException;……(详见教材)

自定义异常定义

当内置异常无法满足需求时,开发者需创建继承Exception的子类,通过重写构造方法实现特定异常类型。异常处理场景适用于参数校验失败场景,如年龄数值非法或手机号位数不符,通过抛出明确异常标识业务逻辑错误。自定义异常通过自定义异常类来实现。自定义的异常类通常继承

Exception

类或其子类。语法格式[修饰符]返回值类型

方法名([形参列表])t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论