如果您有一个由一堆其他对象组成的对象,即:

class A{
  B b {get;}
  C c {get;}
  private A(){
    b = B.Make();
    c = C.Make();
  }
}


并且将类BC设置为在引发异常时返回null,是否有比批量检查A成员中的null是否使null失效更好的方法呢?

诚然,我对异常管理的理解很差,但是BC不处理自己的异常,而是让它们冒泡为A,从而规避整个无效的失败是有意义的。但是,如果它们是使用独立于A的类怎么办?

最佳答案

通常应避免完全返回null,Make()函数应引发异常。如果它们的异常级别太低,则应将其包装或用自定义异常替换。

现在,调用方(A)可以将Make()调用放在try-catch块中,以由他自己再次替换异常,但是他不必这样做,并且您也不必进行空检查。

关于c# - 由其他对象组成的对象在C#中失败的一种绝妙方式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31498564/

10-17 02:46