`
阿尔萨斯
  • 浏览: 4206830 次
社区版块
存档分类
最新评论

让程序更健壮,用错误还是抛异常

 
阅读更多

很久没有在CSDN上活动过了,今日偶然有一小心得,便拿出与大家分享。

记得很久以前,以以C#为主要工作内容时,曾经和同事们以及在cnBlogs中不下数次讨论关于如何用好异常处理的问题,当时得到的结论是:异常处理在程序正常运行时并不会在效率上有太大的影响,仅仅在程序抛出并捕获了异常时效率上才会显得有那么一点点的影响。

今天我们不谈效率,仅就该如何提高程序的健壮性做一点讨论。

依照以前的经验,异常处理应该遵守如下规则:

1.在UI层捕获异常,并忽略可以忽略的异常,不可忽略的异常应该做出相应的处理,并将它程序给用户

2.在BL层尽量不处理异常,如果非要处理,那么请保证该异常不会影响到系统正常的运行

3.能够使用自定义异常的部分,请使用自定义异常,否则请一定要catch(Exception)

如果遵照以上三个规则,并且很好的对产生的异常进行处理,那么我们的程序便会很大程度上提高其健壮性。

如果你所使用的框架中为了提高程序的健壮性,使用的不是try Exception的方式,而是用自定义Error的方式进行处理,那么一旦有任何的异常抛出,并且你没有及时的将这个异常传递给你自定义的Error, 那么,恭喜你,你以后就不要担心没事可做了!因为一切都是你定义的一个Error类,并且在进行业务逻辑处理的时候,如果不满足相应的业务逻辑,你便把相 应的信息放到该Error中,然后再要求其他层调用该方法时捕获该Error,并对其进行处理……试想,如果一个新手来到了你的项目组,对你的这一套处理 逻辑不是很清楚的话,就是不获取你的Error,也不对其进行处理!!OMG……那就等着生产机上出现一些莫名其妙并且无法找到任何的蛛丝马迹的BUG 吧……

  假如您是一个框架的设计者,请一定仔细考虑如何能使以后使用该框架的人能够捕获您框架底层产生的错误,也要考虑到以后使用您的框架设计的程序能够正常运行,能够平稳的运行每一天。

  假如您是一个使用了“错误”而非“异常”的框架使用者,如果您有能力改造您的框架,那么这是最好的事情,如果您无力改造您所使用的框架,那么即便该框架设计的再糟糕,也请努力使您写出的程序健壮一些,不要让您写的程序太脆弱……

分享到:
评论

相关推荐

    C# WINFORM应用程序未处理异常的统一处理技巧

    纵然在程序编写期间我们都会最大限度的考虑可能发生的异常并进行相应的处理,但是往往并不能完全考虑周全,百密一疏,出现未处理异常而导致程序出错,数据丢失,如用户输入错误数据,网络断开,数据库连接失败等等。...

    Python语言基础:异常.pptx

    如果这些错误得不到正确的处理将会导致程序终止运行,所以本结需要学习Python强大的异常处理机制,合理地使用异常处理可以使程序更加健壮,具有更强的容错性,不会因为错误地输入或运行时遇到的问题而造成程序终止。...

    《Java程序设计案例教程》教学课件07异常处理.pptx

    01 能够在MyEclipse IDE中使用throw语句编写程序抛出异常。 02 能够在MyEclipse IDE中使用throws语句编写程序声明方法异常。 03 能够在MyEclipse IDE中编写程序定义自己的异常。 04 《Java程序设计案例教程》教学...

    Python第十章-文件和异常.pdf

    在本章中, 你将学习处理文件, 让程序能够... 这让你的程序在面对错误的数据时更健壮——不管这些错误数据源自无意的错误, 还是源自破坏程序的恶意企图。 你在本章学习的技能可提高程序的适用性、 可用性和稳定性。

    基础深化和提高-异常机制

    Java的异常机制是一种用于处理程序中出现错误情况的机制,它使得程序可以更加健壮和可靠。在Java中,异常被表示为对象,它们提供了一种结构化的方式来处理程序运行时出现的异常情况。 以下是Java异常机制的一些核心...

    Java异常处理.md

    Java异常处理是编写健壮程序的关键方面之一。本资料将帮助您了解异常类层次结构、异常处理、抛出异常、自定义异常和最佳实践。 在Java中,异常被分为受检异常和非受检异常。受检异常需要在编译时进行处理,而非受检...

    Java零基础 - Java的健壮性.md

    本文介绍了Java的健壮性特点,包括异常处理、断言和错误处理。同时,提供了相应的Java示例代码。 内容概要 本文档涵盖以下内容: 异常处理机制及示例 断言的使用及示例 错误处理机制及示例 学到什么 通过阅读本文...

    【09-异常处理】

    增加了异常处理机制后的程序有更好的容错性,更加健壮。 传统错误处理的缺陷 •传统错误处理机制,主要如下两个缺点:  –无法穷举所有异常情况:因为人类知识的限制,异常情况总比可以考虑到的情况多...

    java访问数组

    使用异常处理来编写更为健壮、容错性更好的程序。 3.创建自己的异常类型,并抛出这种类型的异常。 问题描述:编写一个程序,允许用户向一个大小为10的数组输入整型值。程序 应通过索引,或者通过指定一个大于0的值...

    python-except语句.docx

    因此,使用except语句可以帮助我们在程序出现异常时进行处理,使程序更加健壮和稳定。 下面是一些常见的except语句及其用法: 1. except Exception as e: 这是最常见的except语句,用于捕获所有类型的异常。当程序...

    Python_异常机制_深入

    如果这些错误得不到正确的处理会导致程序终止运行,合理利用异常处理机制可以使得程序具有更强的容错性,程序更加健壮。不会因为一些具体原因比如用户错误的输入而导致程序终止 可以使用异常处理结构为用户提供更...

    C++之异常处理详解

    程序中的错误分为编译时的错误和运行时的错误。编译时的错误主要是语法错误,比如:句尾没有加分号,...C++中所提供的异常处理机制结构清晰,在一定程度上可以保证程序的健壮性。 C++中处理异常的过程是这样的:在执

    一文让你秒懂Java的异常处理

    程序发生不正常情况,即异常,java把异常信息打印到控制台,供程序员参考,程序员可以对程序进行修改,让程序更加健壮。 package ExceptionPcakage; public class ExceptionTest1 { public static void main(String...

    python天气更新程序源代码

    ython天气更新程序源代码是一种用...6. 异常处理:添加异常处理机制,处理网络请求失败、数据解析错误等异常情况,保证程序的稳定性和健壮性。7. 用户交互:为用户提供交互功能用户输入城市名称获取对应城市天气更新

    有效处理Java异常三原则

    Java中异常提供了一种识别及响应错误情况的一致性机制,有效地异常处理能使程序更加健壮、易于调试。异常之所以是一种强大的调试手段,在于其回答了以下三个问题:  什么出了错?  在哪出的错?  为什么出错? ...

    C++异常处理 try,catch,throw,finally的用法

     所谓异常处理,即让一个程序运行时遇到自己无法处理的错误时抛出一个异常,希望调用者可以发现处理问题.  异常处理的基本思想是简化程序的错误代码,为程序键壮性提供一个标准检测机制.  也许我们已经使用过异常...

    http-exception-transformer:ExpressJS中间件可发送结构化,干净且健壮的错误响应,并且不会对用户造成干扰

    简单用法要将软件包添加到您的应用程序,请使用yarn -> yarn add http-exception-transformernpm -> npm install http-exception-transformer现在,在您的express.js应用程序中,要触发异常,请在任何地方抛出错误。...

    Laravel核心解读之异常处理的实践过程

    它为开发者提供了处理程序运行时错误的机制,对于程序设计来说正确的异常处理能够防止泄露程序自身细节给用户,给开发者提供完整的错误回溯堆栈,同时也能提高程序的健壮性。 这篇文章我们来简单梳理一下Laravel中...

Global site tag (gtag.js) - Google Analytics