自己的异常类构造函数

时间:2015-01-19 16:54:35

标签: c# .net exception

在“异常最佳做法”(http://msdn.microsoft.com/en-us/library/seyhszts(v=vs.110).aspx)一文中,我发现了以下条款:

  

在C#和C ++中,至少使用三个常用构造函数   创建自己的异常类:默认构造函数,a   接受字符串消息的构造函数,以及接受的构造函数   字符串消息和内部异常。

为什么我必须定义这三个常见的构造函数?我的异常类在没有其他自定义属性的情况下是无用的,我应该将它们的值作为参数传递给我的异常类构造函数。

1 个答案:

答案 0 :(得分:1)

您应该定义这些构造函数,因为大多数开发人员都希望它们存在。有一些模式,比如包装异常,只有在可以指定内部异常时才能执行。这些最佳实践可确保您始终可以使用这些模式。例如:

try { ... }
catch (Exception ex)
{
    throw new MyBusinessException(ex);
}

另一方面,这不是必须的。如果您的异常从一组参数构建自己的消息,则没有必要让用户更改它。