sta*_*xed 3 c# exception-handling exception
现在我在PHP之后编写C#代码.
在PHP中,我创建了一个由Zend Framework的建议引导的异常层次结构(Symfony现在使用类似的东西).
在包中(例如Order)我在这个文件夹中创建文件夹Exception(从php转换为C#):
namespace Order.Exception
{
interface ExceptionInterface{}
class ApplicationException : System.ApplicationException, ExceptionInterface{}
class OrderNotFoundException : ApplicationException {}
class SomethingHappensException : ApplicationException{}
}
Run Code Online (Sandbox Code Playgroud)
我需要很多例外(相对)来方便地从域中表达事物.
是否有任何良好实践来创建异常层次结构?
创作的技术细节我完全理解.良好做法的问题.
来自CLR的两个引用来自C#,第4版:
如果要定义异常类型层次结构,强烈建议层次结构浅而宽,以便创建尽可能少的基类.原因是基类可以将大量错误视为一种错误,这通常很危险.
(......)
这里也有版本化的后果.如果定义从现有异常类型派生的新异常类型,则捕获现有基类型的所有代码现在也将捕获新类型.在某些情况下,这可能是期望的,并且在某些情况下,可能不期望.问题是它实际上取决于捕获基类的代码如何响应从它派生的异常类型和类型.从未预料到新异常的代码现在可能会出现不可预测的行为并打开安全漏洞.定义新异常类型的人无法知道捕获基本异常的所有位置以及如何处理它.因此,在实践中,不可能在这里做出明智的决定.
| 归档时间: |
|
| 查看次数: |
687 次 |
| 最近记录: |