下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java中的异常处理与创建一、异常的基础知识1、Java语言中的基本异常处理是围绕try-catch-finally、throws和throw这几个关键词展开。try-catch-finally用于捕获异常并进行处理;thrwos用于声明一个方法可能抛出的异常,对方法体中可能抛出的异常都要进行声明;throw用于遇见错误的时候抛出一个具体的异常。2、异常的分类一直以来,关于在程序中到底是该使用受检异常还是非受检异常,开发者之间一直存在着争议,毕竟两者各有优缺点。受检异常的特点在于它强制要求开发者在代码中进行显式的声明和捕获,否则就会产生编译错误。这种限制从好的方面来说,可以防止开发者意外地忽视
2、某些出错的情况,因为编译器不允许出现未被处理的受检异常;从不好的方面来说,受检异常对程序中的设计提出了更高的要求。不恰当的使用受检异常,会使代码中充斥着大量没有实际作用、只是为了通过编译而添加的代码。而非受检异常的特点是,如果不捕获异常,不会产生编译错误,异常会在运行时刻才被抛出。非受检异常的好处是可以去掉一些不需要的异常处理代码,而不好之处是开发者可能忽略某些应该处理的异常。目前的主流意见是,最好优先使用非受检异常。3、异常声明是API的一部分这一条提示主要是针对受检异常的。在一个公开方法的声明中使用throws关键词来声明其可能抛出的异常的时候,这些异常就成为这个公开方法的一部分,属于开放
3、API。在维护这个公开API的时候,这些异常有可能会对API的演化造成阻碍,使得编写代码时不能不考虑向后兼容性的问题。如果公开方法声明了会抛出一个受检异常,那么这个API的使用者肯定已经使用了try-catch-finally来处理这个异常。如果在后面的版本更新中,发现该API抛出这个异常是不合适的,也不能直接把这个异常的声明删除。因为这样会造成之前的API使用者的代码无法通过编译。因此,对于API的设计者来说,谨慎考虑每个公开方法所申明的异常是很有必要的。因为一旦加了异常声明,在很长的一段时间内部都无法甩掉它。这也是为什么推荐使用非受检异常的一个重要原因,非受检异常不需要声明就可以直接抛出。
4、但是对于一个方法抛出的非受检异常,也需要在文档中进行说明。二、异常的创建1、精心设计异常的层次结构一般来说,一个程序中应该要有自己的异常类的层次结构。如果只打算使用非受检异常,至少需要一个继承自RuntimeException的异常类。如果还需要使用受检异常,还有另外一个继承自Exception的异常类。如果程序中可能出现的异常情况比较多,应该在不同的抽象层次上定义相关的异常,并形成一个完整的层次结构。这个异常的层次结构与程序本身的类层次结构是相对应的。不同抽象层次上的代码应该只声明抛出同一个层次上的相关异常。2、异常类中包含足够的信息异常存在的一个很重要的意义在于,当错误发生的时候,调用者可以对错误进行处理,从产生的错误中恢复。为了方便调用者处理这些异常,每个异常中都需要包含尽量丰富的信息。异常不应该只说明某些错误发生了,还应该给出相关的信息。异常类是完整的Java类,因此在其中添加所需的域和方法是一件很简单的事情。3、异常与错误提示对于与用户进行交互的程序来说,需要适
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 47531-2026工业设计产品形态设计指南
- 国家级检验检测机构资质认定评审员考试试题及答案(河北省衡水市2026年)
- 福建福州市2026年国家级检验检测机构资质认定评审员考试试题及答案
- 2026年湖北黄石国家级检验检测机构资质认定评审员考试试题及答案
- 【备考2026】海南省中考模拟数学试卷2(含解析)
- 2026年地球小博士地理科普知识大赛题库
- 贲门失弛缓症诊治专家共识(2025版)
- 乌拉特前旗轩兆养殖专业合作社 新建玉米烘干塔项目水土保持报告表
- 银滩镇东片区排水系统建设改造工程水土保持报告表
- 福建省厦泉五校2025-2026学年高一地理下学期期中联考试题
- 中考数学复习专题突破专题14 一次函数-折叠问题(函数)(全国通用)
- YY/T 0031-2008输液、输血用硅橡胶管路及弹性件
- GB/T 3836.1-2021爆炸性环境第1部分:设备通用要求
- 河北省县市乡镇卫生院社区卫生服务中心基本公共卫生服务医疗机构名单目录地址2415家
- 提交材料真实性承诺书
- 《直接开平方法解一元二次方程》教案
- 视频号精细化运营培训课件
- 北京英语中考完成句子
- 中国专利奖课件(PPT 18页)
- 教学楼加固改造工程施工方案
- StdIEEE推荐的电力系统稳定研究用励磁系统数学模型
评论
0/150
提交评论