


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java 中的异常处理与创建一、异常的基础知识1、Java 语言中的基本异常处理是围绕 try-catch-finally throws 和 throw 这几个关键词展开。try-catch-finally 用于捕获异常并进行处理; thrwos 用于声明一 个方法可能抛出的异常,对方法体中可能抛出的异常都要进行声明; throw 用于遇见错误的时候抛出一个具体的异常。2、异常的分类Java 中的异常可以分为两种异常类型 - 受检异常(checked exception 和非受检异常 (unchecked exception 。非受检异 常指的是 java.lang.RuntimeExcept
2、ion 和 java.lang.Error 类及其子 类,其他所有的异常类都被称之为受检异常。两种类型的异常在作用 上没有差别,唯一的差别是使用受检异常时的合法性要在编译时刻由 编译器来检测,因此受检异常在使用的时候需要比非受检异常更多的 代码来规避编译错误。一直以来,关于在程序中到底是该使用受检异常还是非受检异常, 开发者之间一直存在着争议,毕竟两者各有优缺点。受检异常的特点 在于它强制要求开发者在代码中进行显式的声明和捕获,否则就会产 生编译错误。这种限制从好的方面来说,可以防止开发者意外地忽视 某些出错的情况,因为编译器不允许出现未被处理的受检异常;从不 好的方面来说,受检异常对程序中的
3、设计提出了更高的要求。不恰当 的使用受检异常,会使代码中充斥着大量没有实际作用、只是为了通 过编译而添加的代码。而非受检异常的特点是,如果不捕获异常,不 会产生编译错误,异常会在运行时刻才被抛出。非受检异常的好处是 可以去掉一些不需要的异常处理代码,而不好之处是开发者可能忽略 某些应该处理的异常。目前的主流意见是,最好优先使用非受检异常。3、异常声明是 API 的一部分这一条提示主要是针对受检异常的。在一个公开方法的声明中使用 throws 关键词来声明其可能抛出的异常的时候,这些异常就成为这个 公开方法的一部分,属于开放 API。在维护这个公开 API 的时候,这些 异常有可能会对 API
4、的演化造成阻碍,使得编写代码时不能不考虑向 后兼容性的问题。如果公开方法声明了会抛出一个受检异常,那么这个 API 的使用者 肯定已经使用了 try-catch-finally 来处理这个异常。如果在后面的 版本更新中,发现该 API 抛出这个异常是不合适的,也不能直接把这 个异常的声明删除。因为这样会造成之前的 API 使用者的代码无法通 过编译。因此,对于 API 的设计者来说,谨慎考虑每个公开方法所申明的异 常是很有必要的。因为一旦加了异常声明,在很长的一段时间内部都 无法甩掉它。这也是为什么推荐使用非受检异常的一个重要原因,非 受检异常不需要声明就可以直接抛出。但是对于一个方法抛出的非
5、受 检异常,也需要在文档中进行说明。二、异常的创建1、精心设计异常的层次结构一般来说,一个程序中应该要有自己的异常类的层次结构。如果只 打算使用非受检异常,至少需要一个继承自 RuntimeException 的异常 类。如果还需要使用受检异常,还有另外一个继承自 Exception 的异 常类。如果程序中可能出现的异常情况比较多,应该在不同的抽象层 次上定义相关的异常,并形成一个完整的层次结构。这个异常的层次 结构与程序本身的类层次结构是相对应的。不同抽象层次上的代码应 该只声明抛出同一个层次上的相关异常。2、异常类中包含足够的信息异常存在的一个很重要的意义在于,当错误发生的时候,调用者可 以对错误进行处理,从产生的错误中恢复。为了方便调用者处理这些 异常,每个异常中都需要包含尽量丰富的信息。异常不应该只说明某 些错误发生了,还应该给出相关的信息。异常类是完整的 Java 类,因 此在其中添加所需的域和方法是一件很简单的事情。3、异常与错误提示对于与用户
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 科级护理管理组织
- 重症超声右心功能评估
- 垃圾处理设施安全责任书废物处置与环境保护版
- 高科技园区场地租赁及配套设施建设合作协议
- 商业大厦清洁服务外包合同
- 高强度不锈钢驳接爪研发与市场推广协议
- 多元化餐饮业态合伙人合作协议范本
- 公共停车场场地使用与管理合同范本
- 民宿产业场地无偿使用协议
- 创新型产业园区厂房土地使用权转让合同
- 2025至2030中国天然水晶手镯行业商业模式及发展前景与投资报告
- 关于教育减负的议论文
- 2025至2030年中国侧背光源行业投资前景及策略咨询报告
- 2025至2030年中国叉车油缸行业市场发展调研及投资前景展望报告
- 汽车美容质量管理制度
- 躁动患者约束带的使用及护理
- 云南省大理2025年八年级下学期语文期末模拟考试卷三套及答案
- 国家开放大学国开电大《统计与数据分析基础》形考任务1-4 参考答案
- 风电居间合同协议书
- 浙江开放大学2025年《社会保障学》形考任务4答案
- 酱料研发知识培训课件
评论
0/150
提交评论