处理Java编程程序异常的方法_光环it学院培训机构_第1页
处理Java编程程序异常的方法_光环it学院培训机构_第2页
处理Java编程程序异常的方法_光环it学院培训机构_第3页
处理Java编程程序异常的方法_光环it学院培训机构_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、光环IT学院中国IT就业培训知名品牌处理Java编程程序异常的方法_光环it学院培训机构光环it学院怎么样?光环it学院作为一家拥有16年程序员培训经验的培训机构,截至目前,已开设了大数据开发、大数据可视化、大数据分析等多门课程,在经历多次版本迭代之后,其课程体系的深度与广度、项目实战案例的鲜活度、授课老师的专业水准,均已达到一流水平,深受企业和学员界好评!光环it学院的大数据培训业务正进入高速发展阶段!对于java异常处理你是否都掌握了呢,如果是,你是否能在下面这段代码中,迅速找出异常处理的六个问题吗?1、OutputStreamWriter out = 3、try / 4、Statemen

2、t stat = conn.createStatement(;5、ResultSet rs = stat.executeQuery(6、"select uid, name from user"光环IT学院中国IT就业培训知名品牌7、while (rs.next(8、9、out.println("ID:" + rs.getString("uid" / 10、",姓名:" + rs.getString("name"11、12、conn.close(; / 13、out.close(;14、15、ca

3、tch(Exception ex / 16、17、ex.printStackTrace(; /,作为一个Java程序员,你至少应该能够找出两个问题。但是,如果你不能找出全部六个问题,请继续阅读本文。本文讨论的不是Java异常处理的一般性原则,因为这些原则已经被大多数人熟知。我们要做的是分析各种可称为"反例"(anti-pattern的违背优秀编码规范的常见坏习惯,帮助读者熟悉这些典型的反面例子,从而能够在实际工作中敏锐地察觉和避免这些问题。光环IT学院中国IT就业培训知名品牌反例之一:丢弃异常代码:15行-18行。这段代码捕获了异常却不作任何处理,可以算得上Java编程中的

4、杀手。从问题出现的频繁程度和祸害程度来看,它也许可以和C/C+程序的一个恶名远播的问题相提并论?不检查缓冲区是否已满。如果你看到了这种丢弃(而不是抛出异常的情况,可以百分之九十九地肯定代码存在问题。这段代码的错误在于,异常(几乎总是意味着某些事情不对劲了,或者说至少发生了某些不寻常的事情,我们不应该对程序发出的求救信号保持沉默和无动于衷。调用一下printStackTrace算不上"处理异常".不错,调用printStackTrace对调试程序有帮助,但程序调试阶段结束之后,printStackTrace就不应再在异常处理模块中担负主要责任了。丢弃异常的情形非常普遍。打开J

5、DK的ThreadDeath类的文档,可以看到下面这段说明:"特别地,虽然出现ThreadDeath是一种'正常的情形',但ThreadDeath类是Error而不是Exception 的子类,因为许多应用会捕获所有的Exception然后丢弃它不再理睬。"这段话的意思是,虽然ThreadDeath代表的是一种普通的问题,但鉴于许多应用会试图捕获所有异常然后不予以适当的处理,所以JDK把ThreadDeath定义成了Error的子类,因为Error类代表的是一般的应用不应该去捕获的严重问题。可见,丢弃异常这一坏习惯是如此常见,它甚至已经影响到了Java本身的

6、设计。那么,应该怎样改正呢?主要有四个选择:1、处理异常。针对该异常采取一些行动,例如修正问题、提醒某个人或进行其他一些处理,要根据具体的情形确定应该采取的动作。再次说明,调用printStackTrace算不上已经"处理好了异常".2、重新抛出异常。处理异常的代码在分析异常之后,认为自己不能处理它,重新抛出异常也不失为一种选择。光环IT学院中国IT就业培训知名品牌3、把该异常转换成另一种异常。大多数情况下,这是指把一个低级的异常转换成应用级的异常。4、不要捕获异常。结论一:既然捕获了异常,就要对它进行适当的处理。不要捕获异常之后又把它丢弃,不予理睬。反例之二:不指定具体的

7、异常代码:15行。另一个可能的异常是IOException,因为它要操作OutputStreamWriter.显然,在同一个catch块中处理这两种截然不同的异常是不合适的。如果用两个catch块分别捕获SQLException和IOException就要好多了。这就是说,catch语句应当尽量指定具体的异常类型,而不应该指定涵盖范围太广的Exception类。另一方面,除了这两个特定的异常,还有其他许多异常也可能出现。例如,如果由于某种原因,executeQuery返回了null,该怎么办?答案是让它们继续抛出,即不必捕获也不必处理。实际上,我们不能也不应该去捕获可能出现的所有异常,程序的其他地方还有捕获异常的机会?直至最后由JVM处理。光环IT学院中国IT就业培训知名品牌为什么大家会选择光环it学院?光环it学院讲师均为实战专家,具备10年以上软件开发经验,五年以上大数据实战经验,上市品牌,行业口碑好。光环IT学院与中关村达成战略合作,并签署合作协议,用海量

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论