版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务三:除法计算器程序设计单元三:数据与异常处理程序设计教学目标知识目标理解异常的概念和用途掌握使用try-catch-finally语句结构能力目标能够使用try-catch-finally语句进行异常处理教学内容4任务陈述123知识准备任务实施任务拓展任务实训5任务描述:编写一个除法计算器,程序要求在出现除数为零和除数、被除数中有一个不是数字的情况时进行相应的处理。当调用存放在数组中的计算结果,数组有可能产生索引越界,对这种情况进行捕捉和处理。1.任务陈述2.知识准备正常情况下,小王每日开车去上班,耗时大约30分钟但是,异常情况迟早要发生!一路畅通堵车!撞车!生活中的异常2.知识准备异常就是在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序绕行或者等待请求交警解决异常!面对异常该怎么办呢?通常情况下,我们会这样处理:程序运行程序中断运行堵车!撞车!生活中,我们会根据不同的异常进行相应的处理,而不会就此中断我们的生活2.知识准备Java编程语言使用异常处理机制为程序提供了错误处理的能力程序中预先想好了对付异常的处理办法异常!程序运行处理完毕,程序继续运行对异常进行处理什么是异常处理2.知识准备Java的异常处理是通过5个关键字来实现的:try、catch、finally、throw、throws
捕获异常catchtryfinally执行可能产生异常的代码捕获异常无论是否发生异常,代码总能执行手动抛出异常抛出异常throw声明异常声明方法可能要抛出的各种异常throwsJava中如何进行异常处理2.知识准备方法名说明Exception异常层次结构的根类ArithmeticException算术错误情形,如以零作除数ArrayIndexOutOfBoundsException数组下标越界NullPointerException尝试访问null对象成员ClassNotFoundException不能加载所需的类InputMismatchException欲得到数据类型与实际输入类型不匹配IllegalArgumentException方法接收到非法参数ClassCastException对象强制类型转换出错NumberFormatException数字格式转换异常,如把"abc"转换成数字仅靠程序本身无法恢复的严重错误
Exception和Error类的父类由Java应用程序抛出和处理的非严重错误
运行时异常,不要求程序必须对它们做出处理
2.知识准备异常分类2.知识准备trycatchtry-catch块后的代码段publicvoidmethod(){try{//代码段(此处不会产生异常)}catch(异常类型ex){
//对异常进行处理的代码段}//代码段}使用try-catch块捕获异常,分为三种情况:第一种情况2.知识准备trycatch异常类型匹配try-catch块后的代码段进入catch块publicvoidmethod(){try{//代码段1
//产生异常的代码段2
//代码段3}catch(异常类型ex){
//对异常进行处理的代码段4}//代码段5}使用try-catch块捕获异常,分为三种情况:第二种情况产生异常对象程序继续执行异常是一种特殊的对象,类型为java.lang.Exception或其子类
发生异常2.知识准备trycatch异常类型不匹配try-catch块后的代码段程序中断运行
发生异常publicvoidmethod(){try{//代码段1
//产生异常的代码段2
//代码段3}catch(异常类型ex){
//对异常进行处理的代码段4}//代码段5}使用try-catch块捕获异常,分为三种情况:第三种情况产生异常对象2.知识准备【例3-10】从键盘输入一个double类型的数字。如果给出的不是double类型的会产生异常。
try{ Stringstr=in.nextLine(); doubledoub=Double.parseDouble(str); }catch(NumberFormatExceptionne){ System.out.println("异常1:"); ne.printStackTrace(); }
catch(Exceptione){ System.out.println("异常2:"); e.printStackTrace();}2.知识准备finally语句不管try和catch语句时候会出现异常,finally语句都会执行。finally语句是为异常处理事件提供的一个清理机制,一般是用来关闭文件或释放其他系统资源。2.知识准备在try-catch块后加入finally块,可以确保无论是否发生异常,finally块中的代码总能被执行try块finally块catch块无异常有异常2.知识准备【例3-11】从键盘接收一个整数数字,不论发生异常与否,都会执行finally语句。try{System.out.print("输入一个正整数:");Scanners=newScanner(System.in);intdata=s.nextInt();}
catch(Exceptione){System.out.println(e);}finally{System.out.print("finally语句块!");}3.1解决步骤(1)打开Eclipse,创建一个类(2)在类main方法中输入两个数相除(3)给输入的两个数以及两个数相除会产生异常,对这段代码进行异常处理(4)编写测试类,运行程序3.任务实施3.2任务代码
intresult[]={0,1,2}; intoper1=0; intoper2=0; Scannerin=newScanner(System.in); try{ System.out.print("请输入除数:"); oper1=in.nextInt(); System.out.print("请输入被除数:"); oper2=in.nextInt(); result[2]=oper2/oper1; System.out.println("计算结果:"+result[3]);}3.任务实施可能出现问题的代码catch(InputMismatchExceptioniee){ System.out.println("异常1:输入不为数字!");}catch(ArithmeticExceptionaee){ System.out.println("异常2:除数不能为零!");}catch(ArrayIndexOutOfBoundsExceptionaie){ System.out.println("异常3:数组索引越界!");}catch(Exceptione){System.out.println("其他异常4:"+e.getMessage());}finally{System.out.println("最后要执行的内容5!");}3.任务实施
3.任务拓展在catch块中处理异常加入用户自定义处理信息调用异常对象的方法输出异常信息e.printStackTrace();System.err.println("出现错误:被除数和除数必须是整数, "+ "除数不能为零。");方法名说明voidprintStackTrace()输出异常的堆栈信息StringgetMessage()返回异常信息描述字符串,是printStackTrace()输出信息的一部分【例3-12】输入课程代号1到数字3,得到代号对应的课程。 System.out.print("请输入课程代号(1~3之间的数字):"); Scannerin=newScanner(System.in);
try{intcourseCode=in.nextInt();}catch(Exceptionex){ System.out.println("输入不为数字!");
ex.printStackTrace(); }finally{System.out.println("欢迎提出建议!");}3.任务拓展一、实训目的掌握Java的异常处理机制;掌握运用try、catch、finally处理异常。二、实训内容编写一个类ExceptionTest,在main方法中使用try、catch、finally:在try块中,编写被0除的代码;在catch块
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中职第二学年(学前教育)幼儿美术活动设计2026年综合测试题及答案
- 2025-2026年六年级历史(考点突破)上学期试题及答案
- 2025年高职(安全工程技术)工业安全技术试题及答案
- 2025年大学三年级(工商管理)企业战略管理试题及答案
- 2025年中职(机电一体化技术)电气控制技术阶段测试题及答案
- 2025年大学本科一年级(林业技术)森林培育管理测试题及答案
- 2025年中职(高星级饭店运营)餐饮管理实务阶段测试题及答案
- 深度解析(2026)《GBT 18237.2-2000信息技术 开放系统互连 通 用高层安全 第2部分安全交换服务元素(SESE)服务定义》(2026年)深度解析
- 深度解析(2026)《GBT 18289-2000蜂窝电话用镉镍电池总规范》(2026年)深度解析
- 深度解析(2026)《GBT 18182-2025金属压力容器声发射检测及结果评价方法》
- 管道维修人员管理制度
- 2025-2030中国辅助生殖技术行业市场发展趋势与前景展望战略研究报告
- 美恩电子新材料有限公司86万吨-年电子级化学品项目环评资料环境影响
- 2024年崇义县发展投资集团有限公司招聘真题
- 冠心病试题及答案选择题
- 阿奇霉素试题及答案
- 浙江省公路工程监理用表-监理抽检记录2025
- TSG D7004-2010 压力管道定期检验规则 -公用管道
- 2025+CSCO肿瘤治疗所致血小板减少症(CTIT)诊疗指南解读课件
- 陈阅增普通生物学课件
- DB32T 4772-2024自然资源基础调查技术规程
评论
0/150
提交评论