我应该在课堂中包装我的课堂自定义例外吗?

我应该在课堂中包装我的课堂自定义例外吗?

问题描述:

如果我有一个只与一个类相关的异常,哪种风格最好?我应该在课堂中包装我的课堂自定义例外吗?

当我把它包在我的课是这样的:

class Class { 
    //some stuff 
    throw MyException(); 

    class MyException : Exception 
    { 
    //some stuff 
    } 
} 

或者离开它的类

class Class { 
    //some stuff 
    throw MyException(); 
} 
class MyException : Exception 
    { 
    //some stuff 
    } 

有使用一个或其他解决方案的任何进展之外?这有什么编码标准?

+0

你抛出的异常不应该是私人的。这甚至编译? – nvoigt 2014-09-03 11:35:10

+0

是的,它编译,并且抛出的异常在同一个命名空间中可见。 – NoNameProvided 2014-09-03 11:36:13

+2

你的第二个片段无效(非嵌套成员不能是私人的)。而..答案是它应该在课外和'public'之外,否则客户端代码怎么会有机会接受它? – 2014-09-03 11:36:42

哪种风格最好?

这是一个设计问题(更进一步)。

这有什么编码标准吗?

书“在C#编程 - 考试参考70-483”说,

这是最好使用.NET Framework中定义的例外[除非有]与您的代码的开发人员[ ]意识到这些例外情况,并且可以以比框架更具体的方式处理它们。

问问自己,是否没有任何其他异常可能表示您想表示的内容以及需要哪些数据提取有关exc发生的信息主器件接收。

使用其中一种或其他解决方案有什么进展吗?

第一个设计说,类将处理异常,因为它是一个代理服务器,外部代码将不知道发生了什么事,但可能只知道不同的输出的dependig wheter异常被抛出与否。 只有类,其子类(受保护)及其“simblings”(内部)才可以使用它。

第二个说世界将能够明白出了什么问题,并为此做点什么;其他类将改变他们自己的流程来处理错误。