单元3_任务三 除法计算器程序设计_第1页
单元3_任务三 除法计算器程序设计_第2页
单元3_任务三 除法计算器程序设计_第3页
单元3_任务三 除法计算器程序设计_第4页
单元3_任务三 除法计算器程序设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、 Java Java 程序设计程序设计单元三:数据与异常处理程序设计单元三:数据与异常处理程序设计 Java Java 程序设计程序设计 知识目标 理解异常的概念和用途 掌握使用try-catch-finally语句结构 能力目标 能够使用try-catch-finally语句进行异常处理 Java Java 程序设计程序设计4任务陈述任务陈述123知识准备知识准备任务实施任务实施任务拓展任务拓展任务实训任务实训5 Java Java 程序设计程序设计任务描述:任务描述: 编写一个除法计算器,程序要求在出现除数为零和除数、被除数中有一个不是数字的情况时进行相应的处理。当调用存放在数组中的计算结

2、果,数组有可能产生索引越界,对这种情况进行捕捉和处理。 1. 任务陈述任务陈述 Java Java 程序设计程序设计 2. 知识准备知识准备 正常情况下,小王每日开车去上班,耗时正常情况下,小王每日开车去上班,耗时大约大约30分钟分钟但是,异常情况迟早要发生!但是,异常情况迟早要发生!一路畅通一路畅通堵车!堵车!撞车!撞车!生活中的异常生活中的异常 Java Java 程序设计程序设计 2. 知识准备知识准备 异常就是在程序的运行过程中所发生的不异常就是在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序正常的事件,它会中断正在运行的程序绕行或者等待绕行或者等待请求交警解决请求交警解

3、决异常!异常!面对异常该怎么办呢?通常情况下,我们会这样面对异常该怎么办呢?通常情况下,我们会这样处理:处理:程序运行程序运行程序中断运行程序中断运行堵车!堵车!撞车!撞车!生活中,我们会根据不同的异常进行相应的处理生活中,我们会根据不同的异常进行相应的处理,而不会就此中断我们的生活,而不会就此中断我们的生活 Java Java 程序设计程序设计 2. 知识准备知识准备 Java编程语言使用异常处理机制为程序提编程语言使用异常处理机制为程序提供了错误处理的能力供了错误处理的能力程序中预先想好了程序中预先想好了 对付异常的处理办法对付异常的处理办法 异常!异常! 程序运行程序运行处理完毕,程序继

4、续运行处理完毕,程序继续运行对异常进行处理对异常进行处理什么是异常处理什么是异常处理 Java Java 程序设计程序设计 2. 知识准备知识准备 Java的异常处理是通过的异常处理是通过5个关键字来实现的:个关键字来实现的:try、catch、 finally、throw、throws 捕获异常捕获异常 catchtryfinally执行可能产生执行可能产生 异常的代码异常的代码 捕获异常捕获异常 无论是否发生异常,无论是否发生异常,代码总能执行代码总能执行手动抛出异常手动抛出异常 抛出异常抛出异常 throw声明异常声明异常 声明方法可能要声明方法可能要抛出的各种异常抛出的各种异常 thr

5、owsJava中如何进行异常处理中如何进行异常处理 Java Java 程序设计程序设计 2. 知识准备知识准备方方 法法 名名说说 明明Exception 异常层次结构的根类异常层次结构的根类ArithmeticException算术错误情形,如以零作除数算术错误情形,如以零作除数ArrayIndexOutOfBoundsException数组下标越界数组下标越界NullPointerException尝试访问尝试访问 null null 对象成员对象成员ClassNotFoundException不能加载所需的类不能加载所需的类InputMismatchException欲得到数据类型与实

6、际输入类型不匹配欲得到数据类型与实际输入类型不匹配IllegalArgumentException方法接收到非法参数方法接收到非法参数ClassCastException对象强制类型转换出错对象强制类型转换出错NumberFormatException数字格式转换异常,如把数字格式转换异常,如把abcabc转换成转换成数字数字 Java Java 程序设计程序设计仅靠程序本身无法恢仅靠程序本身无法恢复的严重错误复的严重错误 Exception和和Error类的父类类的父类由由Java应用程序抛出应用程序抛出和处理的非严重错误和处理的非严重错误 运行时异常,不要求程运行时异常,不要求程序必须对它

7、们做出处理序必须对它们做出处理 2. 知识准备知识准备 异常分类异常分类 Java Java 程序设计程序设计 2. 知识准备知识准备trycatch try-catch 块后的代码段块后的代码段public void method()try / 代码段代码段(此处不会产生异常此处不会产生异常) catch (异常类型异常类型 ex) / 对异常进行处理的代码段对异常进行处理的代码段/ 代码段代码段 使用使用try-catch块捕获异常,分为三种情况:块捕获异常,分为三种情况:第一种情况第一种情况 Java Java 程序设计程序设计 2. 知识准备知识准备trycatch异常类型匹配异常类型

8、匹配 try-catch 块后的代码段块后的代码段进入进入catch块块public void method()try / 代码段代码段 1 / 产生异常的代码段产生异常的代码段 2 / 代码段代码段 3 catch (异常类型异常类型 ex) / 对异常进行处理的代码段对异常进行处理的代码段4/ 代码段代码段5 使用使用try-catch块捕获异常,分为三种情况:块捕获异常,分为三种情况:第二种情况第二种情况 产生异常对象产生异常对象 程序继续执行程序继续执行异常是一种特殊的对象,类型为异常是一种特殊的对象,类型为java.lang.Exception或其子类或其子类 发生异常发生异常 Ja

9、va Java 程序设计程序设计 2. 知识准备知识准备trycatch异常类型不匹配异常类型不匹配 try-catch 块后的代码段块后的代码段程序中断运行程序中断运行 发生异常发生异常public void method()try / 代码段代码段 1 / 产生异常的代码段产生异常的代码段 2 / 代码段代码段 3 catch (异常类型异常类型 ex) / 对异常进行处理的代码段对异常进行处理的代码段4/ 代码段代码段5 使用使用try-catch块捕获异常,分为三种情况:块捕获异常,分为三种情况:第三种情况第三种情况 产生异常对象产生异常对象 Java Java 程序设计程序设计 2.

10、 知识准备知识准备【例【例3-10】从键盘输入一个】从键盘输入一个double类型的数字。如果类型的数字。如果给出的不是给出的不是double类型的会产生异常。类型的会产生异常。try String str = in.nextLine();double doub = Double.parseDouble(str); catch (NumberFormatException ne) System.out.println(异常异常1:);ne.printStackTrace(); catch (Exception e) System.out.println(异常异常2:);e.printStack

11、Trace(); Java Java 程序设计程序设计 2. 知识准备知识准备finally语句语句u不管不管try和和catch语句时候会出现异常,语句时候会出现异常,finally语句都会执行。语句都会执行。ufinally语句是为异常处理事件提供的一语句是为异常处理事件提供的一个清理机制,一般是用来关闭文件或个清理机制,一般是用来关闭文件或释放其他系统资源。释放其他系统资源。 Java Java 程序设计程序设计 2. 知识准备知识准备 在在try-catch块后加入块后加入finally块,可以确保无论是否块,可以确保无论是否发生异常,发生异常,finally块中的代码总能被执行块中的

12、代码总能被执行try 块块 finally 块块 catch 块块 无异常无异常 有异常有异常 Java Java 程序设计程序设计 2. 知识准备知识准备【例【例3-11】从键盘接收一个整数数字,不论发生】从键盘接收一个整数数字,不论发生异常与否,都会执行异常与否,都会执行finally语句。语句。try System.out.print(输入一个正整数:输入一个正整数:); Scanner s = new Scanner(System.in); int data = s.nextInt(); catch (Exception e) System.out.println(e); finall

13、y System.out.print(finally 语句块!语句块!); Java Java 程序设计程序设计3.1 3.1 解决步骤解决步骤(1) 打开Eclipse,创建一个类(2) 在类main方法中输入两个数相除(3) 给输入的两个数以及两个数相除会产生异常,对这段代码进行异常处理(4) 编写测试类,运行程序 3. 任务实施任务实施 Java Java 程序设计程序设计3.2 3.2 任务代码任务代码 int result=0,1,2;int oper1=0;int oper2=0;Scanner in = new Scanner(System.in);trySystem.out.p

14、rint(请输入除数请输入除数:);oper1 = in.nextInt(); System.out.print(请输入被除数请输入被除数:);oper2 = in.nextInt(); result2=oper2/oper1;System.out.println(计算结果:计算结果:+result3); 3. 任务实施任务实施可能出现问题的代码可能出现问题的代码 Java Java 程序设计程序设计catch (InputMismatchException iee) System.out.println(异常异常1:输入不为数字输入不为数字!); catch (ArithmeticExcep

15、tion aee) System.out.println(异常异常2:除数不能为零除数不能为零!); catch (ArrayIndexOutOfBoundsException aie) System.out.println(异常异常3:数组索引越界数组索引越界!);catch (Exception e) System.out.println(其他异常其他异常4:+e.getMessage();finallySystem.out.println(最后要执行的内容最后要执行的内容5!); 3. 任务实施任务实施 Java Java 程序设计程序设计 3. 任务拓展任务拓展 在在catch块中处理

16、异常块中处理异常 加入用户自定义处理信息 调用异常对象的方法输出异常信息e.printStackTrace();System.err.println(出现错误:被除数和除数必须是整数,出现错误:被除数和除数必须是整数, +除数不能为零。除数不能为零。);方法名说 明void printStackTrace()输出异常的堆栈信息输出异常的堆栈信息String getMessage()返回异常信息描述字符串,返回异常信息描述字符串,是是printStackTrace()printStackTrace()输出信息的一部分输出信息的一部分 Java Java 程序设计程序设计【例例3-12】输入课程代

17、号输入课程代号1到数字到数字3,得到代号对应的课程。,得到代号对应的课程。System.out.print(请输入课程代号请输入课程代号(13之间的数字之间的数字):);Scanner in = new Scanner(System.in);try int courseCode = in.nextInt(); catch (Exception ex) System.out.println(输入不为数字输入不为数字!);ex.printStackTrace(); finally System.out.println(欢迎提出建议欢迎提出建议!); 3. 任务拓展任务拓展 Java Java 程序设计程序设计一、实训目的一、实训目的u 掌握掌握Java的异常处理机制;的异常处理机制;u 掌握运用掌握运用try、catch、finally处理异常。处理异常。二、实训内容二、实训内容编写一个类编写一个类ExceptionTest,在,在main方法中使用方法中使用try、catch、finally:u 在在try块中,编写被块中,编写被0除的代码;除的代码;u 在在catch块中,捕获被块中,捕获被0除所产生的异常,并且打印异常信息;除所产生的异常,并且打印异常信息;u 在在finally块中,打印一条语句。块中,打印一条语句。三、简要提示三、简要提示在产生、捕获和处理异常

温馨提示

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

评论

0/150

提交评论