日期:2014-05-18  浏览次数:20942 次

C#中的异常处理的一般规则
1.我的问题意向在WebForm方向
2.我的问题不在:
C# code

try
{
//do sth
}
catch (customerException1 e1)
{
//处理
}
catch (customerException2 e2)
{
//处理
}
...
catch (Exception1 e)
{
//处理
}


这个规则大都知道
3.我想知道的规则是:我给出一个应用场景

产品类,类库中有一个GetInfo方法用来返回产品列表,在这个函数的处理中
我该:A.属性赋值的时候做try,catch处理,这样,如果有一个属性出了问题,我就让整个返回值为null,这样页面调用的时候需要判断是否这个返回对象是空的
B.也是我用的新方法,不做任何异常处理,在页面调用的时候try,catch
C.两者的区别,第一种方式在类库中处理所有异常,这样前台页面需要处理下这个是否为null,这样就等于:类库一个try,catch,调用页面一个判null;第二种方式,如果引发了异常,直接在页面调用时处理这个异常就可以了,但是,得不到异常的详细信息,你能知道这样的异常“未将对象...引用到实例”,但是我只需要try,catch一次就可以了,不过如果这样的调用在页面很多,我得每一个调用类库方法的时候都try一下

似乎,A要比B有优势的多,我也很迷惑,我在前一段时间看了有关C#的异常处理,很是迷惑,我不知道大家这样的应用场景中该如何处理。

------解决方案--------------------
可以参考microsoft的企业库中的异常处理模块
------解决方案--------------------
类库中应该做异常处理,对于一些异常,可以简单处理后直接抛给业务层,也可以包装成自己的异常类抛给业务层。
就是说类库、业务层都需要处理异常。侧重不一样。