版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单元6
输入输出流与异常处理6.1异常处理程序设计
任务6.1用户登录界面异常任务描述在出货管理系统的登录界面需要输入用户名和密码,其中用户名只能由6-10位数字组成,密码只能是6位,任何不符合用户名或密码要求的都视为异常,并且要求捕获并处理该异常。使用自定义异常类型来完成对用户登录信息的验证功能,如图6-1所示。图6-1用户登录界面异常知识目标了解异常处理的作用。熟悉异常处理方式。熟悉自定义异常类。能力目标能熟练使用try-catch捕获异常。能自定义异常类,会使用throw抛出异常。能使用throws在方法中抛出异常。素养目标价值塑造和思想引领,积极乐观态度,常怀感恩之心。风险意识。任务6.1用户登录界面异常
相关知识生活中的突发状况
正常情况下,小王每日开车去上班,耗时大约30分钟。
但是,异常情况迟早要发生!堵车!or撞车!
异常概述程序中的异常案例---使用者输入错误
public
classHelloJava{
publicstaticvoidmain(String[]args){
System.out.print("请输入课程代号(1至3之间的数字):");Scanner
scanner
=
new
Scanner(System.in);int
courseCode
=
scanner.nextInt();
//
从键盘输入整数switch
(courseCode)
{
case
1:System.out.println("Python编程");
break;
case
2:System.out.println("Java编程");
break;
case
3:System.out.println("MySQL基础");
}}正常情况:
输入:2
输出:Java编程异常情况:
输入:B
程序中断运行!
异常概述什么是异常
异常就是在程序的运行过程中所发生的不正常或者无法处理的事件,它会中断正在运行的程序。在程序中,错误可能产生于程序员没有预料到的各种情况,或者超出程序员可控范围的环境,例如用户的坏数据、试图打开一个不存在的文件等。异常!程序运行程序中断运行
异常概述异常处理
一个异常是在程序执行期间发生的一个事件,它使正常的指令流中断。Java语言使用异常机制为程序提供错误处理的能力。
绕行或者等待请求交警解决堵车!
撞车!异常!程序运行程序继续运行对异常进行处理程序中预先想好了对付异常异常处理完毕程序继续运行
异常概述异常类
为了能够及时有效地处理程序中的运行错误,Java专门引入了异常类。
异常处理方式使用try..catch块捕获异常
try{有风险的程序}catch(异常类型){
对异常进行处理的代码段}try..catch后的代码段import
java.util.Scanner;public
class
MyException
{
public
static
void
main(String[]
rags)
{
System.out.print("请输入课程代号(1至3之间的数字):");Scanner
in
=
new
Scanner(System.in);try
{
int
courseCode
=
in.nextInt();
switch
(courseCode)
{
case
1:
System.out.println("Python编程");break;
case
2:
System.out.println("Java编程");
break;
case
3:
System.out.println("MySQL基础");
}
}
catch
(Exception
ex)
{
System.out.println("输入不为数字!");
}
System.out.println("欢迎提出建议!");
}}
异常处理方式使用多重catch块捕获多个异常
import
java.util.InputMismatchException;import
java.util.Scanner;public
class
MyException
{
public
static
void
main(String[]
rags)
{
Scanner
in
=
new
Scanner(System.in);
try{
System.out.print("请输入学生的总学时:");//总学时int
totalTime
=
in.nextInt();System.out.print("请输入学生的课程数目:");int
totalCourse
=
in.nextInt();//课程数目}}在安排catch语句的顺序时,首先应该捕获最特殊的异常,
然后再逐渐一般化,即先子类后父类。
System.out.println("S1各课程的平均学时为:"+
totalTime/totalCourse);}
catch
(InputMismatchException
e1)
{
System.out.println("输入不为数字!");}
catch
(ArithmeticException
e2)
{
System.out.println("课程数目不能为零!");}
catch
(Exception
e)
{
System.out.println("发生错误:"+e.getMessage());
异常处理方式使用finally块—善后处理机制
finally作为异常处理的一部分,它只能用在try/catch语句中,并且附带一个语句块,表示这段语句最终一定会被执行(不管有没有抛出异常),经常被用在需要释放资源的情况下。import
java.util.Scanner;public
class
MyException
{
public
static
void
main(String[]
rags)
{
System.out.print("请输入课程代号(1至3之间的数字):");Scanner
in
=
new
Scanner(System.in);try
{
int
courseCode
=
in.nextInt();
switch
(courseCode)
{
case
1:
System.out.println("Python编程");break;
case
2:
System.out.println("Java编程");
break;
case
3:
System.out.println("MySQL基础");
}
}
catch
(Exception
ex)
{
System.out.println("输入不为数字!");
} finally{
System.out.println("欢迎提出建议!");
}
}}throw
new
ArrayIndexOutOfBoundsException("\n我是个性化的异常信息:
\n数组下标越界"
);}catch(ArrayIndexOutOfBoundsExceptionex
){System.out.println(ex
);}l
Java程序在运行时,如果发生了一个可识别的错误,
则系统产生一个与该错误相对应的异常类的对象,这个过程称为抛出异常。l
使用throw关键字用于Exception类中的子类异常,更重要的用途是抛出用户自定义的异常。l
创建自定义异常时,须继承RuntimeException类或者Exception类。thrownew异常类名(异常信息)……使用throw抛出异常抛出异常的实例化对象try{
使用throws抛出异常
l
如果某个方法可能会产生异常,但不想在当前方法中处理这个异常,则可以使用throws关键字在方法中抛出异常。l
使用throws关键字常用于方法上,表示一个方法可能抛出的所有异常信息,当方法抛出多个异常时,
可修饰符返回类型方法名
(参数列表)throws异常类名列表{……方法体……}publicstaticparseInt(Strings
)
throws
NumberFormatExceptionl
例如:判断整数数据格式是否为合法的Integer.parseInt()方法就会抛出NumberFormatException异常(
Java
API文档中的方法原型)。用逗号分隔异常类型名。publicclass
MyExceptionextends
Exception{……}方法功能publicvoid
printStackTrace()在控制台打印异常
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新员工入职面试安排函2026(5篇范文)
- 时间管理方法提高任务执行效率手册
- 急性胃肠炎治疗与护理手册
- 按期交付建筑行业保证函3篇范文
- 医疗流程标准化管理工具集
- 企业员工沟通协作及会议管理工具
- 项目质量管理检查清单模板全面控制
- 网络游戏行业虚拟现实游戏方案
- 就产品包装设计改进意见的商洽函(3篇范文)
- 零售企业人力资源面试全流程分析
- 2026年安徽卫生健康职业学院单招综合素质考试题库带答案详解ab卷
- (新教材)2026年人音版二年级下册音乐全册教案
- 2026年春青岛版(新教材)小学科学三年级下册(全册)教学设计(附目录P199)
- 23G409先张法预应力混凝土管桩
- JJG 150-2005 金属布氏硬度计检定规程-(高清现行)
- GB∕T 17766-2020 固体矿产资源储量分类
- 《圆的面积》说课.ppt课件
- 小学语文教师培训:《制定双向细目表提高命题科学性》优质课件
- (高清版)GB_T 40916-2021液化气储运用高强度聚氨酯泡沫塑料
- 东北林业大学信纸模板
- 汽车减振器的设计(页)
评论
0/150
提交评论