`
艾蛋蛋
  • 浏览: 41770 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

异常处理经验谈

阅读更多

1.异常处理相对于返回错误代码的一个最大优点在于,异常可以被自动传递,这样,在编程时异常更加难以被忽视。 

2.通常,只在最上层(一般是UI层)捕捉异常。如果要在其它层捕捉异常,除非是下列情况之一: (1)能够处理该异常,或者 (2)能够忽略该异常,或者 (3)需要转换该异常为其它特定异常后抛出新异常

3.UI层捕获异常后,可以 (1)将无关紧要的异常忽略。 (2)将异常转换为错误信息展现给用户。 (3)如果是重大异常,可以考虑终止应用程序。

4.最上层(一般是UI层)不得抛出新的异常;最上层需要捕捉所有异常,否则异常会直接导致程序终止,这将是非常不好的用户体验。

5.可以在非最上层抛出自定义异常。如果是自定义异常,请保证其是可序列化的,并且保证其实现了Exception的三个构造函数。

6.异常的抛出与截获需要很多的cpu时间,请谨慎的使用异常。

7.在可能抛出异常的地方,如果需要,请确保使用finally进行资源清理,而无论此处是否捕捉了异常。

8.在一个catch块中的代码都应该至少部分地处理了所捕捉的异常。否则,就不要使用catch块。

9.从构造函数中抛出异常。 因为构造函数没有返回值,所以没有简单的方法来想构造函数的调用者发出构造失败的信号,这时便可以通过抛出异常来做到。比如构造参数与指定条件不符时,就抛出一个异常。

10.在以上前提的保证下,可以在非最上层使用AOP截获(intercept)异常而进行日志记录,这样通过日志记录,我们可以了解系统的 运行状态。记不起在哪里看到过这样一句话:在软件实现中,异常和日志都是重要的质量保证手段,异常和日志总是同时出现的。 可以说,异常是日志记录的重要/主要组成部分。

分享到:
评论

相关推荐

    源码追踪经验谈[侯捷]

    4. **异常处理与错误排查**:书中讲解了异常处理的最佳实践,包括何时抛出异常、如何捕获异常以及如何编写有意义的异常信息。此外,他还提供了排查错误的思路和方法,帮助读者快速定位和解决问题。 5. **性能优化**...

    网络管理经验谈——好资料

    性能管理则关注网络和系统的实时性能监控和分析,通过对收集到的数据进行处理,生成汇总报表,帮助管理员识别潜在的问题和优化网络性能。性能管理系统不仅要能生成直观易懂的报表,还要能预测性能问题,提供故障预警...

    编程经验谈 程序员 编程问题

    本文将深入探讨编程经验中的关键点,结合“程序设计经验谈”这一主题,帮助读者更好地理解和应用编程技巧。 1. **代码可读性**:一个优秀的程序员始终注重代码的可读性,因为代码是给人读的,而不是机器。清晰的...

    数据库设计经验谈

    ### 数据库设计经验谈 在IT领域,数据库设计是一项至关重要的技能,它直接影响到数据的存储效率、查询性能以及系统的可扩展性。本文将深入探讨数据库设计中的关键知识点,包括但不限于设计原则、实体关系(ER)图...

    powerbuilder编程经验谈.

    - **Try-Catch机制**:PB提供了异常处理机制,通过Try-Catch块捕获并处理运行时错误。 - **调试工具**:PB自带的调试器可以帮助开发者跟踪代码执行,检查变量状态,定位并修复问题。 5. **性能优化** - **数据...

    powerbuilder编程经验谈

    8. **软件工程原则**:良好的编程习惯和遵循软件工程原则,如模块化设计、异常处理、代码复用,都是构建大型、稳定系统的基石。 9. **资源利用**:“阅读器及更多E书下载.url”可能指向有关PowerBuilder的电子书籍...

    源码追踪经验谈(侯俊杰谈如何读代码)

    这意味着要关注代码的输入、输出、异常处理和调用栈。通过设置断点,使用调试器进行单步执行,观察变量的变化,可以深入理解代码的运行流程。侯俊杰在书中可能还分享了如何有效利用IDE(集成开发环境)的调试功能,...

    侯捷讲座.源码追踪经验谈(PDF高清).rar

    4. **异常处理**:介绍C++的异常处理机制,如何正确使用try-catch语句来捕获和处理运行时错误,以及异常安全编程策略。 5. **STL(Standard Template Library)**:详细解析STL容器(如vector、list、set等)、迭代...

    数据库设计经验谈.pdf

    这份"数据库设计经验谈"涵盖了从前期准备到具体实施的多个关键步骤,以下是对这些内容的详细阐述: 1. **设计数据库之前** 在开始设计之前,需要深入考察现有的环境,理解当前系统的工作方式、数据流转以及存在的...

    VC之路始于足下VC入门经验谈绝对的经典共10章(1-3)

    - **调试与异常处理**:掌握调试技巧,利用Visual Studio的调试工具,以及理解和使用C++异常处理机制。 - **多线程编程**:学习在MFC中创建和管理线程,以及线程间通信。 通过《VC之路始于足下:VC入门经验谈绝对...

    web测试经验谈

    15. 返回键使用测试:多次使用返回键检查是否会导致错误或异常行为。 16. 搜索功能测试:输入存在和不存在的搜索词,以及混合合理和不合理条件,确保搜索结果准确。 17. 输入位置检查:确认在光标所在位置输入信息...

    大规模Hadoop集群运维经验谈

    ### 大规模Hadoop集群运维经验谈 #### 阿里巴巴Hadoop集群运维实践 在当前的大数据时代背景下,企业对于数据处理能力的需求日益增长,Hadoop作为主流的大数据处理框架之一,其运维能力成为了确保大数据平台稳定...

    自学编程经验谈.pdf

    "自学编程经验谈" 一、自学编程的重要性 自学编程是一个需要勇敢和毅力的过程,需要面对困难、挫折和失败。只有敢于挑战和战胜这些苦恼的人,才能踏上编程之路,努力追寻自己的梦想。 二、选定方向 编程的世界是...

    经验谈C++

    5. **异常处理**:C++的异常处理机制允许程序员在程序运行时捕获和处理错误,确保程序的健壮性。 6. **内存管理**:C++允许直接操作内存,包括动态内存分配和释放。理解指针、引用和智能指针的使用,以及内存泄漏和...

    软件项目测试管理经验谈

    ### 软件项目测试管理经验谈 #### 一、软件测试员自身素质培养 软件测试作为软件开发的重要环节,其质量直接影响到软件产品的稳定性和用户体验。因此,培养优秀的软件测试人员至关重要。以下几点建议有助于提升...

    数学建模的个人经验谈—合集

    ### 数学建模的个人经验谈 #### 一、引言 数学建模是一项综合性很强的比赛,它不仅考验参与者的数学功底、编程能力和逻辑思维,还需要团队成员之间的默契配合。本文将根据作者的个人经验,分享一些在数学建模过程...

    浅谈Python中的异常和JSON读写数据的实现

    ### Python中的异常处理 在Python编程中,异常处理是一种重要的机制,用于管理程序运行时可能出现的错误或非正常情况。合理的异常处理不仅能够使代码更加健壮,还能提高用户体验。 #### 异常处理的基本语法 ...

    软件测试及Bug管理经验谈

    本文将基于《软件测试及Bug管理经验谈》这一主题,深入探讨软件测试的核心原则、Bug管理的重要性和有效实践,以及如何选择适合的Bug管理工具。 #### 清晰的质量概念 软件测试的第一步在于确立明确的质量标准。这...

    Birt使用经验谈.rar

    **BIRT(Business Intelligence and Reporting Tools)报表工具详解** BIRT是开源的Java报表系统,由Eclipse基金会维护,主要用于生成动态的、交互式的...希望这篇Birt使用经验谈能助你在报表开发的道路上一臂之力。

    局域网故障排除经验谈-网卡故障

    ### 局域网故障排除经验谈—网卡故障 在现代办公环境中,局域网(LAN)作为支撑网络系统正常运行的重要硬件平台,其稳定性和可靠性对于确保业务流程的顺畅至关重要。一旦出现故障,不仅会影响到日常工作,还可能...

Global site tag (gtag.js) - Google Analytics