Java程序设计应用开发教程 课件 6.1 异常处理_第1页
Java程序设计应用开发教程 课件 6.1 异常处理_第2页
Java程序设计应用开发教程 课件 6.1 异常处理_第3页
Java程序设计应用开发教程 课件 6.1 异常处理_第4页
Java程序设计应用开发教程 课件 6.1 异常处理_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

单元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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论