`

exception 处理规则

 
阅读更多
exception 处理规则



1. 捕获异常

不要过份依赖异常,只对异常情况使用异常处理,不要使用异常实现控制结构,对于经常发生的可预计事件不要采用异常,注意异常的抛出有正常的抽象级别。

2. 异常捕获后应该进行适当的处理,不要丢弃异常

捕获异常后的3种处理方法:

① 处理异常。

针对该异常采取一些行动,例如修正问题、提醒某个人或进行其他一些处理,要根据具体的情形确定应该采取的动作。

② 重新抛出异常。

处理异常的代码在分析异常之后,认为自己不能处理它,重新抛出异常也不失为一种选择。

③ 把该异常转换成另一种异常。

大多数情况下,这是指把一个低级的异常转换成应用级的异常(其含义更容易被用户了解的异常)。


3. 指定具体的异常

在catch语句中尽可能指定具体的异常类型,必要时使用多个catch。不要试图处理所有可能出现的异常。


4. 释放占用的资源

当然,编写finally块应当多加小心,特别是要注意在finally块之内抛出的异常??这是执行清理任务的最后机会,尽量不要再有难以处理的错误,保证所有资源都被正确释放。。

  

5. 说明异常的详细信息

在出现异常时,最好能够提供一些文字信息,例如当前正在执行的类、方法和其他状态信息,包括以一种更适合阅读的方式整理和组织异常信息。


6. 尽量减小try块的体积

不要把大量的代码放入单个try块,然后再在catch语句中声明Exception,而是应该分离各个可能出现异常的段落并分别捕获其异常。这种做法为分析程序抛出异常的原因带来了方便,因为一大段代码中有太多的地方可能抛出Exception。




7. 输出完整的数据

异常处理会改变程序的执行流程,有可能对数据的完整性产生影响,因此要全面考虑可能出现的异常以及这些异常对执行流程的影响。

较为理想的处置办法是向输出设备写一些信息,声明数据的不完整性;另一种可能有效的办法是,先缓冲要输出的数据,准备好全部数据之后再一次性输出。

分享到:
评论

相关推荐

    Java高级程序设计:第8章-异常处理.pptx

    知道什么是异常(Exception),如何处理异常 能够区分checked exception和 runtime exception 会使用 try-catch-finally 处理异常 方法声明异常 抛出异常 自定义异常类 语法错误, 运行期错误, 逻辑错误 语法错误: ...

    【09-异常处理】

    异常概述 •异常处理已经成为衡量一门语言是否成熟的标准... 异常处理规则 •不要过度使用异常 •不要使用过于庞大的try块 •避免使用Catch All语句 •不要忽略捕获到异常 。。。。。。。。。。。。。

    对象存储Hitachi Content Platform (HCP)基本概念,S3接口示例工程,规则,最佳实践,异常处理

    "Basic Concepts of Object Storage Hitachi Content Platform (HCP), S3 Interface Sample Projects, Rules, Best Practices, and Exception Handling.

    简洁的Net程序开发指导

    一.项目架构 3 1.技术点扩展和改进 4 2.Asp.Net MVC框架 4 二. 编码及数据库命名规则 5 ...2.异常处理(Exception) 19 2.1.SystemException 19 2.2.ApplicationException 19 2.3.异常处理的方法技巧 20 3.日志书写 20

    电子商务公务网站

    Web Form只是用来提供用户操作,而代码隐藏文件实现各种控件的事件处理。 2. 业务规则层 - Business Rules Layer 业务规则层包含各种业务规则和逻辑的实现,如客户注册、购物流程、产品展示等等。业务规则层用来...

    Sosoo 1.0网络爬虫程序.doc

    throws Exception { Roboter robby = new Roboter(); robby.setStartURL(new URL("http://10.25.101.173:7001/pa18Web/framework/images/framevork_04.gif")); robby.setMaxDepth(0); //设置最大连接访问深度 ...

    Ruby常见面试题.pdf

    7. Ruby中如何处理异常(Exception Handling)?请说明在Ruby中的异常处理机制。 8. Ruby中的数组(Array)和哈希(Hash)有什么区别?请说明在Ruby中数组和哈希的不同特点。 9. 什么是Ruby中的块(Block)和迭代器...

    Delphi 调用WebService 出错

    Project Project1.exe raised exception class ERemotableException with message '服务器无法处理请求。 ---$amp;>amp;$nbsp;未将对象引用设置到对象的实例。'. Process stopped. Use Step or Run to continue. ...

    Enterprise Library 4.0

    Exception Handling Application Block . 开发人员和决策者可以使用这个应用程序块为企业应用程序各层异常处理制定一致的策略。 Logging Application Block . 开发人员可以使用这个应用程序块为他们的应用程序...

    JAVA面试题集合面试技能大全

    JAVA面试题集合面试技能大全 JAVA面试题集 基础知识: 1.C++或Java中的异常处理...Exception表示需要捕捉或者需要程序进行处理的异常。 7. 在java中一个类被声明为final类型,表示了什么意思? ……………………

    NET设计规范-.NET约定、惯用法与模式.part2

    7.2.2 异常处理 177 7.2.3 对异常进行封装 182 7.3 标准异常类型的使用 184 7.3.1 Exception与SystemException 184 7.3.2 ApplicationException 184 7.3.3 InvalidOperationException 184 7.3.4 ...

    NET设计规范-.NET约定、惯用法与模式.part1

    7.2.2 异常处理 177 7.2.3 对异常进行封装 182 7.3 标准异常类型的使用 184 7.3.1 Exception与SystemException 184 7.3.2 ApplicationException 184 7.3.3 InvalidOperationException 184 7.3.4 ...

    java时间处理工具类--DateUtils

    * 根据日历的规则,为基准时间添加指定日历字段的单个时间单元 * * @param field * 日历字段, 使用Calendar类定义的日历字段常量 * @param up * 指定日历字段的值的滚动方向。true:向上滚动 / false:向...

    Express.js-Template:现在,您将节省您的时间并直接开始编程,无需担心设置

    ExpressJS模板。 这是开发人员的模板,因此您可以直接开始编程,而无需关心您的Express应用程序的设置和浪费时间。... 处理uncaughtException和unhandledRejection。 漂亮和ESlint设置。 希望对您有帮助。作者 :

    JAVA基础课程讲义

    命名规则(规范) 25 基本数据类型(primitive data type) 26 整型变量 26 浮点型 27 字符型(2个字节): 28 boolean类型 29 运算符(operator) 29 二元运算符 29 一元运算符 30 布尔逻辑表达符 30 位运算符 30 扩展...

    java编程基础,应用与实例

    第11章 异常处理(exception handing) 154 11.1 try-catch语句 154 11.2 Exception类的种类 157 11.3 可抛出异常的方法 158 11.4 自定义异常 161 11.5 巩固练习 162 第12章 常用API之一 164 12.1 ...

    数据库应用程序实用攻略

    三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中 间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交换。 三层...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    12.4.4 exception 386 12.5 对象和范围 387 12.6 留言板程序 389 12.7 留言板管理程序 397 12.8 jsp文档 402 12.8.1 jsp文档的标识 404 12.8.2 jsp文档中的元素语法 404 12.9 小结 407 第13章 jsp与javabean...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    12.4.4 exception 386 12.5 对象和范围 387 12.6 留言板程序 389 12.7 留言板管理程序 397 12.8 jsp文档 402 12.8.1 jsp文档的标识 404 12.8.2 jsp文档中的元素语法 404 12.9 小结 407 第13章 jsp与javabean...

Global site tag (gtag.js) - Google Analytics