




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章异常处理 目标 理解异常的概念运用try块 catch块和finally块处理异常运用多重catch块处理异常运用嵌套try catch块处理异常运用关键字throw和throws处理异常运用JAVA编写和使用自定义异常 异常处理入门 想尝试捕捉异常 可以使用 try catch finally 三个关键词组合的语法来达到 try 陈述句 catch 异常型态名称 异常处理 finally 一定会处理的区块 手动引发异常 指定由方法引发的异常 try finally catch throws throw 处理异常2 2 try和catch块2 1 try catch 异常 执行catch后程序继续正常运行 程序控制 引发 代码块 单元 finally块 try块 finally块 catch块 无异常 异常 try catch和finally块的执行流程 异常处理块的一般形式 try 要监控错误的代码块methodGeneratingException catch Exceptione Exceptione的异常处理程序throwe finally 在try结束前要执行的代码块cleanup Java中的异常处理 问题 异常处理程序的对象参数作何用处 作用 用来向异常处理程序提供信息 多重catch块3 1 一段代码可能会生成多个异常当引发异常时 会按顺序来查看每个catch语句 并执行第一个类型与异常类型匹配的语句 异常也是多态的 执行其中的一条catch语句之后 其他的catch语句将被忽略 try catch ArrayIndexOutOfBoundsExceptione catch Exceptione Exception ArithmeticException NullPointerException Object Throwable Error ThreadDeath SQLException RuntimeException NumberFormatException 异常类的层次结构 Throwable具有两个子类 它们是Exception 处理用户程序应当捕获的异常情况Error Error类的异常为内部错误 因此在正常情况下不期望用户的程序捕获它们 AWTError 严重的系统错误 不用处理也无法处理 Checkedexception 编译程序要求您要处理 Uncheckedexception 编译程序不要求您要处理 Java异常类 文件结束 EOFException 找不到文件 FileNotFoundException I O异常的根类 IOException 数字转化格式异常 比如字符串到float型数字的转换无效 NumberFormatException 不能加载所需的类 ClassNotFoundException 方法接收到非法参数 IllegalArgumentException 数组大小小于或大于实际的数组大小 ArrayIndexOutOfBoundException 尝试访问null对象成员 NullPointerException 许多java lang异常的基类 RuntimeException 异常层次结构的根类 Exception 算术错误情形 如以零作除数 ArithmeticException 线程中断 InterruptedException 说明 异常 受检异常 执行时期异常 如果您不在程序中处理的话 例如将IOException的 catch 区块拿掉 CheckedExceptionDemo java 9 unreportedexceptionjava io IOException mustbecaughtordeclaredtobethrown 受检异常 执行时期异常 try BufferedReaderbuf newBufferedReader newInputStreamReader System in System out print 请输入整數 intinput Integer parseInt buf readLine System out println inputx10 input 10 catch IOExceptione CheckedExceptionSystem out println I O错誤 catch NumberFormatExceptione RuntimeExceptionSystem out println 输入必须为整數 Java中的异常处理 原则 由近及远 找到即停 没有终止 确保抛出的异常总会在一个方法中得到处理 怎么办 写一个catch 其参数为Exception类型即可 catch ExceptiongenericObject 多重catch块3 2 使用多重catch语句时 异常子类一定要位于异常父类之前 try catch Exceptione catch ArrayIndexOutOfBoundsExceptione 使用throw和throws 语句3 throw异常 引发的异常 停止 异常处理程序 可执行程序语句 语句1 语句2 throw throws 想要自行丢出异常 可以使用 throw 关键词 并生成指定的异常对象 try doubledata 100 0 0 System out println 浮点数零除 data if String valueOf data equals Infinity thrownewArithmeticException 除零异常 catch ArithmeticExceptione System out println e throw throws 在方法中会有异常的发生 而您并不想在方法中直接处理 而想要由呼叫方法的呼叫者来处理使用 throws 关键词java ioBufferedReader的readLine 方法就声明会丢出java io IOException privatevoidsomeMethod int arr throwsArrayIndexOutOfBoundsException ArithmeticException 实作 使用throw和throws 处理异常 被调用的方法 调用方法 处理异常 可能会导致异常 防止被调用的方法出现异常并处理异常 typecalledmethod name parameter list throwsexception list bodyofmethod typecallingmethod name try statementscalledmethod name catch Exceptione statements Java的异常处理机制使得异常事件可以沿调用堆栈自动向上传播 沿着被调用的顺序往前寻找 只要找到符合该异常种类的异常处理程序 就交给这部分程序去处理 许多情况下 无论try是否抛出一个异常 也无论该异常是否在方法中被捕获 都要执行一个过程 煤气灶 比如 必须关闭的文件 使用了外部资源等try catch finally 1 如果try没有抛出异常 执行完try后 接着执行finally2 try抛出异常 被其后的catch捕获 处理完后执行finally3 try抛出异常 未被其后的catch捕获 需传播出去 传播之前执行finally finally子句 用户自定义异常2 1 自定义异常概念使用自定义异常的时候JavaAPI提供的内置异常不一定总能捕获程序中发生的所有错误 有时会需要创建用户自定义异常自定义异常需要继承Exception及其子类 实验 异常处理与泛型容器实验目的 练习异常类的创建 异常的捕捉 抛出及处理步骤 实验内容 260页8 4 2题定义一个Circle类 其中有求面积的方法area 当圆的半径小于0时 抛出一个自定义的异常 编程实现之 提示 至少需要Circle类和自定义的异常类NegativeException 总结 异常是运行时发生的错误可以使用try catch throw throws和finally来管理Java异常处理 要监控的程序语句包含在try块内catch块中的代码用于捕获和处理异常 在方法返回之前绝对必须执行的代码应放置在finally块中要手动引发异常 使用关键字throw 任何被抛到方法外部的异常都必须用throws子句指定多重catch和嵌套try catch的使用自定义异常的编写和使用异常处理最好只用于错误处理 而不应是用于程序业务逻辑
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高级护理实践技能考试指南及模拟题集
- 大型活动志愿者招募致辞模板
- 2025年机动车检测面试高频题
- 2025年企业经营管理总监管理智慧考核试卷及答案解析
- 2025年美术教育教师水平测试试题及答案解析
- 2025年旅游规划师专业技能测验试题及答案解析
- 2025年税务师事务所招聘考试题目解析与指导
- 2025年检察官资格考试试题及答案解析
- 2025年文联会计准则考试模拟题及题库
- 课件中使用花括号
- 《油气管道无人机智能巡检系统技术管理规范》
- 2025年新版期权知识考试题库带答案
- GB 46030-2025建筑用安全玻璃安全技术要求
- 《机械制图(多学时)》中职全套教学课件
- 双氧水生产工艺简单简介
- KNS机器参数,干货
- 医院输血科技术人员绩效考核指标
- 企业标准体系课件
- 《特种设备目录》(2022年第114号)
- 冲击式水轮机演示
- 人民音乐出版社四年级音乐上册教案
评论
0/150
提交评论