记得很久以前,以以C#为主要工作内容时,曾经和同事们以及在cnBlogs中不下数次讨论关于如何用好异常处理的问题,当时得到的结论是:异常处理在程序正常运行时并不会在效率上有太大的影响,仅仅在程序抛出并捕获了异常时效率上才会显得有那么一点点的影响。
今天我们不谈效率,仅就该如何提高程序的健壮性做一点讨论。
依照以前的经验,异常处理应该遵守如下规则:
1.在UI层捕获异常,并忽略可以忽略的异常,不可忽略的异常应该做出相应的处理,并将它程序给用户
2.在BL层尽量不处理异常,如果非要处理,那么请保证该异常不会影响到系统正常的运行
3.能够使用自定义异常的部分,请使用自定义异常,否则请一定要catch(Exception)
如果遵照以上三个规则,并且很好的对产生的异常进行处理,那么我们的程序便会很大程度上提高其健壮性。
如果你所使用的框架中为了提高程序的健壮性,使用的不是try Exception的方式,而是用自定义Error的方式进行处理,那么一旦有任何的异常抛出,并且你没有及时的将这个异常传递给你自定义的Error,那么,恭喜你,你以后就不要担心没事可做了!因为一切都是你定义的一个Error类,并且在进行业务逻辑处理的时候,如果不满足相应的业务逻辑,你便把相应的信息放到该Error中,然后再要求其他层调用该方法时捕获该Error,并对其进行处理……试想,如果一个新手来到了你的项目组,对你的这一套处理逻辑不是很清楚的话,就是不获取你的Error,也不对其进行处理!!OMG……那就等着生产机上出现一些莫名其妙并且无法找到任何的蛛丝马迹的BUG吧……
假如您是一个框架的设计者,请一定仔细考虑如何能使以后使用该框架的人能够捕获您框架底层产生的错误,也要考虑到以后使用您的框架设计的程序能够正常运行,能够平稳的运行每一天。
假如您是一个使用了“错误”而非“异常”的框架使用者,如果您有能力改造您的框架,那么这是最好的事情,如果您无力改造您所使用的框架,那么即便该框架设计的再糟糕,也请努力使您写出的程序健壮一些,不要让您写的程序太脆弱……
分享到:
相关推荐
在Python中,异常处理机制允许程序员优雅地处理程序运行时可能出现的错误,而不是让程序突然崩溃。下面我们将详细探讨异常处理的概念以及如何在Python中实现它。 1. 异常的定义: 异常是程序执行过程中遇到的错误,...
在SQL编程中,正确地抛出异常是调试和错误处理的关键环节。这使得开发者能够捕获并处理程序运行...通过合理使用`RAISERROR`和`THROW`,以及配合`TRY...CATCH`,我们可以更好地控制错误处理,确保程序的稳定性和健壮性。
自定义异常和抛出异常是Java异常处理机制的重要组成部分,它们允许开发者更精细地控制程序的错误处理流程。本篇文章将深入探讨这两个概念。 首先,让我们了解什么是自定义异常。Java提供了一套内置的异常类,如`...
在Release版本中,捕获异常的目标是提供一种优雅的方式来处理这些错误,而不是让程序突然终止。捕获异常的步骤通常包括以下几点: 1. **异常定义**:首先,你需要了解可能遇到的异常类型,比如空指针异常、数组越界...
Java程序的错误类型和异常处理是编程过程中必不可少的环节,主要分为语法错误、运行错误和逻辑错误三类。下面将详细阐述这三种错误及其处理方式。 1. 语法错误 语法错误是最直观的错误类型,它发生在编程时输入的...
在C#编程中,异常处理是一项至关重要的技能,它能够帮助开发者优雅地处理程序运行时可能出现的错误,保证程序的健壮性和稳定性。本篇将深入探讨“异常格式”,“抛出异常”以及“自定义异常”这三大知识点。 首先,...
在编程中,“抛出异常”是一种常见的错误处理机制,用于在程序执行过程中遇到不可预见的情况时中断正常流程,并提供有关错误的信息。通过这样的机制,程序员可以更好地控制程序的执行流程,确保程序在出现问题时能够...
在JavaScript中,错误处理通常涉及try...catch语句,用于包裹可能抛出异常的代码段。当try块内的代码引发异常时,执行流会立即跳转到对应的catch块,允许程序员定义如何响应异常。此外,finally块可以在try和catch...
在编程中,异常处理是一项重要的技能,用于处理程序运行时可能出现的错误情况。在这个例子中,我们有两个相关的Java程序,它们展示了如何通过自定义异常和使用`try-catch`语句来实现异常处理。 首先,我们来看`...
`Unchecked Exception`(如`NullPointerException`、`ArrayIndexOutOfBoundsException`)则在运行时抛出,类似于C++的运行时错误,不需要强制处理,但建议捕获以增加程序的健壮性。 Java异常处理通过`try-catch-...
Java程序的错误类型主要分为语法错误、运行错误和逻辑错误,每...总的来说,理解和掌握Java的错误类型和异常处理是编写健壮、可靠代码的关键,这有助于在开发过程中尽早发现问题,减少程序运行时的错误,提高软件质量。
Java程序中的错误主要分为三类:语法错误、运行错误...通过有效的异常处理,开发者可以更优雅地处理程序中的错误,提高程序的健壮性和用户体验。理解并熟练应用这些错误类型和异常处理机制是每个Java程序员必备的技能。
在C++编程语言中,异常处理是一个至关重要的概念,它允许程序员优雅地处理程序运行时可能...通过创建自定义异常类,结合`try`、`catch`和`throw`,我们可以更好地控制程序在遇到错误时的行为,从而提升软件的健壮性。
本示例"**WPF全局异常捕获Demo**"旨在提供一种策略,确保在程序运行过程中能够有效地捕获和处理异常,从而防止程序因错误而意外终止。 首先,我们要理解WPF应用程序的生命周期,以及在何处设置全局异常处理。WPF...
程序异常处理是软件开发中的一个核心概念,它关乎程序的健壮性和稳定性。在编程过程中,我们无法保证每一个环节都能按预期执行,因此,当程序遇到错误或异常情况时,有效的异常处理机制能够帮助我们捕获问题,防止...
在Java编程中,异常处理是程序健壮性的重要组成部分。异常是程序运行时出现的错误,它可以中断程序的正常流程,使得我们能够捕获并处理这些错误,避免程序崩溃。本篇文章将深入探讨如何在Java中实现异常的抛出和处理...
- **异常的严重程度**:致命的错误通常更适合用异常来表示,而可恢复的错误则可以用错误码或特殊值来处理。 - **性能需求**:如果异常处理对性能有较大影响,可以考虑使用错误码或特殊值。 - **一致性**:在整个项目...
总的来说,`throw`关键字是Java异常处理机制的重要组成部分,它使得我们可以优雅地处理程序中的错误和异常情况,确保程序的健壮性和稳定性。通过对`ThrowException_02.java`的深入分析,我们可以更好地理解`throw`的...
源码使用说明.txt很可能是对"截获程序异常并继续运行.e"中实现的异常处理逻辑的详细解释,包括如何设置异常处理器、如何定义和抛出自定义异常、以及如何在捕获异常后进行恢复操作。这个文档对于学习和理解易语言中的...