C#有关异常处理机制的几个问题,想请教求解

 我来答
白子屡188
2013-07-23 · TA获得超过348个赞
知道小有建树答主
回答量:257
采纳率:100%
帮助的人:55.7万
展开全部
  1. 为了防止运行时可能出现的异常

  2. 为了程序的完整性,异常处理顾名思义是异常,是为了防范于未然。一般出现异常是告知开发者而非直接跟用户相关

  3. 首先要搞清楚是throw还是throw XXXXException也就是所谓的封装异常。一些底层的异常一旦被包装,在上层再次引发异常的时候,可能无法直接定位到真实发生异常的地方。故仅使用throw将异常上抛到UI层或最上层

  4. 一般你在不确定是否会发生异常的时候需要进行异常捕捉,尤其是对于IO操作时、数值转换、空引用等情况

  5. 自定义异常是为了更好的封装的异常,但一般不建议自定义异常,用系统的异常即可

A.给你补充点,如果你是担心异常捕捉会影响性能,如你的第四个问题,‘完美运行的程序’,既然完美,我所理解的是100%不会出异常,那么这个时候你加try-catch跟不加try-catch,性能上来说,几乎无异,只在有异常发生时他们才会凸显出性能上的差异;

B.我个人建议,在必要的地方需要加上异常,在catch里面尽量少逻辑运算而可改用"通知"的方式来进行异常处理。在try块,尽可能将可能引发异常的情况用if等判断语句做下处理,如:

var tempArg = GetOneObj();//tempArg有可能为null,那么如果再进行tempArg.OtherMethod()的调用就会报NullReferenceException的异常,所以可以在调用钱先对tempArg进行判空操作。

C.多写代码,自然而然会理解,建议安装resharper,会对你学习或多或少有一点帮助

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式