创建我自己的自定义异常的最佳做法是什么?
时间:2020-03-05 18:50:56 来源:igfitidea点击:
在上一个有关异常的问题的后续活动中,在.NET中创建自定义异常的最佳实践是什么?
更具体地说,我们应该继承System.Exception,System.ApplicationException还是其他一些基本异常?
解决方案
回答
我认为在任何级别(进行自定义,抛出,捕获)处理异常时,要记住的最重要的一件事情是,异常仅适用于特殊情况。
回答
从System.Exception
继承。 System.ApplicationException是没有用的,并且设计准则说:"不要从System.ApplicationException抛出或者派生。"
参见http://blogs.msdn.com/kcwalina/archive/2006/06/23/644822.aspx
回答
继承所有其他异常的基础异常是System.Exception,这就是应该继承的异常,除非我们当然可以使用诸如特定异常的默认消息之类的东西。
回答
有一个代码段。用那个。另外,事后请检查代码分析;该代码段省略了我们应实现的构造函数之一。
回答
在CIDE中,键入" exception",然后单击TAB。这将使我们开始编写新的异常类型。有注释以及一些有关异常做法的讨论的链接。
就我个人而言,我非常喜欢创建许多小类,在那儿扩展到异常类型。例如,在编写Foo类时,我可以选择:
- 抛出新的Exception(" Bar发生在Foo中");`
- 抛出新的FooException(" Bar发生");`
- 抛出新的FooBarException();
在哪里
class FooException : Exception { public FooException(string message) ... }
和
class FooBarException : FooException { public FooBarException() : base ("Bar happened") { } }
我更喜欢第三个选项,因为我认为它是一个面向对象的解决方案。