




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务三:除法计算器程序设计单元三:数据与异常处理程序设计教学目标知识目标理解异常的概念和用途掌握使用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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大连东软信息学院《工程材料》2023-2024学年第二学期期末试卷
- 重庆市涪陵区涪陵高中2025届高三下学期阶段性测试(三)物理试题试卷含解析
- 福建省德化一中、安溪一中2025届高三下学期第一次摸底考试历史试题理试卷含解析
- 民办四川天一学院《古代汉语下》2023-2024学年第一学期期末试卷
- 白喉、百日咳、破伤风、乙肝四联制剂项目风险分析和评估报告
- 贵州体育职业学院《专项理论与实践Ⅵ》2023-2024学年第二学期期末试卷
- 铁路货运站服务项目风险分析和评估报告
- 安徽省皖南地区2024-2025学年高三考前最后一次模拟试题语文试题试卷含解析
- 新疆理工学院《TeamProject》2023-2024学年第一学期期末试卷
- 济宁医学院《文献检索与研究综述》2023-2024学年第二学期期末试卷
- 小学教师专业成长规划
- GB 45248-2025车辆驾驶人员体内毒品含量阈值与检验
- (二模)哈三中2025年高三学年第二次模拟考试语文试卷(含答案)
- 甘肃省农垦集团有限责任公司招聘生产技术人员笔试真题2024
- 幼儿园总务工作管理
- 2025年上半年山东省潍坊临朐招聘卫生教育系统部分事业编制及控制总量人员易考易错模拟试题(共500题)试卷后附参考答案
- 2025年上半年下半年浙江省舟山市港航管理局招聘6人易考易错模拟试题(共500题)试卷后附参考答案
- 2025年中医针灸学主治医师-中医针灸学考试题(附答案)
- 老年人安全用药与护理
- 四年级语文下册第六单元【集体备课】(教材解读+教学设计)
- DZ∕T 0033-2020 固体矿产地质勘查报告编写规范(正式版)
评论
0/150
提交评论