c#异常处理 如何做好异常处理

c#异常处理 如何做好异常处理

ID:18420486

大小:143.00 KB

页数:8页

时间:2018-09-17

c#异常处理 如何做好异常处理_第1页
c#异常处理 如何做好异常处理_第2页
c#异常处理 如何做好异常处理_第3页
c#异常处理 如何做好异常处理_第4页
c#异常处理 如何做好异常处理_第5页
资源描述:

《c#异常处理 如何做好异常处理》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、软件开发时都比较烦出现错误,特别是windows应用程序,经常会造成程序崩溃,结果很多开发人员有了把错误消灭或者捕捉所有异常的心思,认为这样就正确了。百度“C#异常处理”第一条,开头说“在C#中,异常就是发生错误的带名词,即一旦有错误,我们就认为程序发生了异常。比较专业的解释: 异常实际上是程序中错误导致中断了正常的指令流的一种事件.(你可以认为异常是任何中断正常程序流程的错误条件)。”异常成了典型的大反派,等同于错误,是需要消灭的。MSDN的描述却截然相关,“C#语言的异常处理功能可帮助您处理程序运行时出现的任何意外或异常情况”,是又红又专的正派形象,是用来处理意外和

2、异常情况,减少错误的。那么我们到底是该,开写代码就trycatch消灭掉所有异常,还是像MSDN所说,让它来帮助我们粗粒程序运行时出现的任何意外或异常情况呢?认识异常首先需要说明,错误和异常是不同的,比如你想写1*0结果写成了1/0那就是错误,如果你就是想写a/b,结果运行时b=0,那么这就会引发异常,但不见得就会造成程序错误,当然你会想,既然知道是a/b,b==0在之前就应该进行检查,没检查就是写算是代码有错,对小段代码来说没问题,但是实际情况各种各样,你无法完全避免,这时,异常就登场了。说上面这段的目的是说,错误应该避免,异常无法避免,对于错误我们不做评价,异常却需

3、要说道说道。想要自己写的代码不出现异常(当前这是错误的),首先你需要认识异常。.net中的Exception——异常,是.net设计出来,用以帮助系统正确运行用的一种机制的对象载体,这种机制的目的不是让程序崩溃,而是帮助你处理异常情况,如果你有消灭异常的心思,那么你还不懂它。在早期的程序开发,比如C中,并没有.net中那么多千奇百怪的异常(当然.net和C中的异常都是可以定义的),很多时候,执行一个操作,就得到一个结果,如果开发人员不自己去检查,你不会知道一个会影响你程序结果的问题发生了,最终执行下去,出错了也不知道,比如值类型越界了,指针偏移超出预期了,程序是不会告诉

4、你的,等待你的项目上线运行了一个月之后,发现一大堆的数据里,某些时候,部分数据的小数点位错位了,那么你得从海量的代码中一个个去检查,并承担后果。最后你只会骂溢出都不提示太坑人了。好了,在.net中,由于是托管代码,运行时内存上会做检查,托管代码的运行会做检查,同时第三方程序,或者COM组件在托管中运行时会被检查,导致你在执行程序,调用某段代码时,这段代码会在执行结果超出预期时,强烈的告诉你,这不对,有问题了,你得处理,你不处理,你程序就会崩溃。这样的结果就是,当程序内部运行出现问题时,你的程序崩溃了,这儿也报错,哪儿也报错,你没机会骂编译器了,而是你的老板或者用户骂你。

5、为了防止这种情况出现,你必须进行分析、处理异常,在万不得已的时候抛出异常,让调用方去头疼;当然,如果也可以在万不得已的时候把异常都trycatch掉,留个表面功夫,看似不报错了,我对这种代码的要求就是,不写详细处理可以,写至少3行的注释。如何写好的代码,写健壮的代码,需要做几件件事:一是先检查输入,对于异常的输入、错误的输入、无效的输入等等,应首先检查、屏蔽,防止垃圾进来,进来了就是错,比如前面提到a/b,别人给你个a和b,你得检查。就像家里买个东西,你肯定得在确认收货前先检查吧,如果你不检查就收了,以后用的时候出了问题谁都麻烦。二是要有“责任”心,把自己这段代码可能造

6、成的问题都分析出来,那些是可允许的执行结果,可以输出或者返回,那些是不允许的结果,出现了可能会造成问题的,你都得告诉别人,可以强硬点,让别人用的时候必须处理,把自己从“责任”beconsistentwithinthesamedisk.Alternateunifiedcorerequirementsplacedontheterminalstripterminals,onlineidentityandensurethecoppercoreisnotexposed.6.4.6enclosurewithinthesametothecablecoreprovidesbinding

7、intoacircle,harnesstiespacingisgenerally100mm;branchofficesshallbebindingonbothends,eachcore中摘出来。我对开发人员的要求就是如此,你可以在你的代码中为执行一个很小的+-*/操作列出10个检查项,抛出5个合适的异常,没问题,如果别的调用方不去处理,那是他的责任;但是如果你没有发现问题,把一个异常引入了,就是你的责任。这种方式推广的结果是,写代码的对自己的操作分析得清清楚楚,调用别人代码时,要把别人写的代码看清楚,别人的每个返回值,每个异常都得去处理,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。