版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为Word版,下载可任意编辑——Java编程中异常处理的方法Java编程中奇怪处理的方法
Java编程中的奇怪处理是一个很常见的话题,其实并没有好多人真正掌管正确处理奇怪处境的方法和策略,下面是我为大家整理的Java编程中奇怪处理的方法,接待参考~
Java编程中的奇怪处理是一个很常见的话题了,几乎任何一门介绍性的Java课程都会提到奇怪处理。不过,我认为好多人其实并没有真正掌管正确处理奇怪处境的方法和策略,最多也就不过了解个约莫,知道点概念。本文就对三种不同程度和质量的Java奇怪处理举行了议论,所阐述的处理奇怪的方式按手法的上下分为:
好,不好和恶劣三种。
同时向你供给了一些解决这些问题的技巧。
首先解释一些java奇怪处理中务必搞领会的定义和机制。Java语言模范将自Error类或RuntimeException类衍生出来的任何违例都称作“不成检查”Unchecked奇怪;其他全体奇怪那么称作“可检查”Checked奇怪。
所谓可检查奇怪,是指我们理应自行处理的奇怪。至于处理的手段,要么加以操纵trycatch,要么通告throws他们有可能产生。通常,应抓获那些已知如何处理的奇怪,而通告那些不知如何处理的奇怪。
而对那些不成检查奇怪来说,他们要么在我们的操纵之外Error,要么是我们首先就不该允许的处境RuntimeException.
至于奇怪的指定,Java的规矩分外简朴:一个方法务必通告自己可能产生的全体可检查奇怪。编写自己的方法时,并不确定要通告出方法实际可能产生的每一个奇怪对象,要想理解什么时候务必要方法的throws丛句来通告奇怪,就务必知道对一个奇怪来说,他只有可能在下面四种处境下才会产生:
1.调用了可能产生奇怪的方法。譬如BufferedReader类的readLine方法。该方法通告java.io.IOException奇怪
2.侦测到一个错误,并用throw语句产生奇怪。
3.展现一个编程错误。譬如a[-1]=0。
4.Java产生内部错误。
假设展现头两种处境之一,务必报告计划使用自己方法的人:假使使用这个方法,可能造成一个奇怪的产生即在方法头上使用throws,一个简朴的记忆方法:
只要含有throw,就要通告throws。假设一个方法务必同时处理多个奇怪,就务必在头内指出全体奇怪。就像下例表示的那样,用逗号对他们举行分割:
1234567classAnimationpublicImageloadImageStrintsthrowsEOFException,MalformedURLException…………然而,我们不需要通告内部java错误,也不理应通告自RuntimeException衍生出来的奇怪。
好的奇怪处理
好奇怪处理供给了处理程序错误的统一机制。事实上,Java语言通过向调用者提出奇怪警告的方式而显著地提升了软件开发中的奇怪处理才能。这种方式把Java语言中的.“方法method”举行了扩展和巩固,使之包括了自身的错误条件。下面就让我们看一个例子,这个例子说领略这种处境。
以下是FileInputStream构造器之一的原型:
publicFileInputStreamStringnamethrowsFileNotFoundExceptionJava
的方法和构造器务必声明他们在被调用时可能“扔出”的奇怪,采用的关键字就是“throws”。这种在方法原型中展现的奇怪提示增加了编程的稳当性。
显而易见,这种方式是向方法的调用者提示了可能展现的奇怪条件,这样调用者就可以对这些奇怪作出适当的相应处理。以下代码示意我们是如何捕获并且处理FileNotFoundException这一奇怪的:
1234567891011tryFileInputStreamfis=newFileInputStreamargs[0];//othercodehere...catchFileNotFoundExceptionfnfeSystem.out.printlnFile:+args[0]+notfound.Aborting.;System.exit1;Java奇怪处理还有其他一些优秀的特性,这就是可检查奇怪、用户定义奇怪和在JDK1.4中推出的新型Java记录APIJavaLoggingAPI。java.lang.Exception的全体子类都属于可检查奇怪。可检查奇怪checkedexception是扔出该奇怪的方法所务必提示的奇怪,这种奇怪务必被捕获或者向调用者提示。用户定义奇怪User-definedexceptions是定制的奇怪类,这种奇怪类扩展了java.lang.Exception类。优良的Java程序规定定制奇怪封装、报告和处理他们自己独有的处境。最新的Java记录APIloggingAPI那么可以集中记录奇怪。
不好的Java奇怪处理
不好的一面包括两种处境:滥用不成检查奇怪uncheckedexceptions和滥用catchall构造器等。这两种方式都使得问题变得繁杂起来。
有一种类别的奇怪属于RuntimeException的子类,这种奇怪不会受到编译器的检查。譬如,NullPointerException和ArrayStoreException就是这种类型奇怪的实例。程序员可以对RuntimeException举行子类化以回避检查奇怪的限制,从而便于产生这些奇怪的方法为其调用者所使用。
专业的开发团队应当只允许在很少的处境下才可以这样做。
其次种奇怪处理的恶习是catchall构造器。所谓的“catchall构造器”就是一种奇怪捕获代码模块,它可以处理全体扔给它的可能奇怪。
以下是catchall处理器的实例:
123456789try//codeherewithcheckedexceptionscatchThrowablett.printStackTrace;我得供认,我自己在编写一般程序的时候就曾经用过这种技术;但是,在编写关键程序的时候这种类型的构造器确定要制止使用,除非他们被授权可以和中央错误处理器联合使用才可以这样做。
除此之外,catchall构造器不过只是一种通过制止错误处理而加快编程进度的机制。
奇怪处理的一个缺乏之处是难以采用优良的错误处理策略。从低容内存状态恢复、写入错误和算法错误等奇怪处境都不是轻易能得到解决的。你可以尝试一下循环、垃圾收集和指点用户等常用技术来应付以上的局面。
恶劣的处理方法
和大量Java特性及其API类似,Java的奇怪处理机制也有“霸王硬上弓”类的滑稽错误。比方说,为了扔出某个奇怪竟然毫不踌躇地用“new”关键词为其调配内存就是这样的例子。
我自己不知道有多少次就由于犯了这种错误而在肃穆的编译器面前屡屡碰壁。在这种处境下,我们其实都是在侍奉语言而不是让语言为我们所用。还有我们碰见的OutOfMemoryErrors就是奇怪处理的缺陷。这一处理过程是:
使用finally模块关闭文件,解析奇怪以得到展现问题的方法和代码行。在这一过程之内最大的缺陷是需要捕获OutOfMemoryError,而这一奇怪却并不是可检查奇怪!想想看,内存耗尽是相当常见的处境。任何与内存使用状态精细相关的程序都应当捕获和处理这一错误。
使用奇怪时的一些建议
1.奇怪操纵的设计宗旨并不是用来代替一些简朴的测试。只有在奇怪处境下才使用奇怪!
2.不要过分细化奇怪。不要在每个语句上都加上奇怪处理,最好将整个任务都放在try块内。假设其
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024物业公司承担住宅小区垃圾清运的合同
- 2025年度留置车辆处置借款合同4篇
- 2025年grc构件生产线投资建设与运营合同3篇
- 年度PAPTFE竞争策略分析报告
- 年度童书产业分析报告
- 2024-2025学年新教材高中语文基础过关训练15谏逐客书含解析部编版必修下册
- 二零二五版白糖仓储物流服务合同范本2篇
- 2025年理疗项目合作协议范本:特色理疗项目合作框架协议3篇
- 2025年度中小企业间资金周转互助合同范本
- 二零二五年度商业地产租赁合同中情势变更处理办法及责任划分4篇
- 骨科手术后患者营养情况及营养不良的原因分析,骨伤科论文
- GB/T 24474.1-2020乘运质量测量第1部分:电梯
- GB/T 12684-2006工业硼化物分析方法
- 定岗定编定员实施方案(一)
- 高血压患者用药的注意事项讲义课件
- 特种作业安全监护人员培训课件
- (完整)第15章-合成生物学ppt
- 太平洋战争课件
- 封条模板A4打印版
- T∕CGCC 7-2017 焙烤食品用糖浆
- 货代操作流程及规范
评论
0/150
提交评论