我想添加DataAccessLayerException和DuplicateEntryException类。
但是我对我应该从哪些类派生存在很大的疑问?
例如,DataAccessLayerException(将用作从数据访问层引发的异常的包装)可以从Exception或DbException派生。但是,恐怕DbException应该仅是提供程序异常(例如OracleException或SqliteException等)的基类。我不知道。
而且DuplicateEntryException(是的,我讨厌此异常不是由数据库提供程序实现的,所以我将自己创建)可以从Exception或DbException甚至从DataAccessLayerException派生。

你怎么看?还请提出您为什么这么认为的论点。

请,仅限经验丰富的开发人员/建筑师。

先感谢您。

最佳答案

我想我将基于Exception类的自定义异常。我假设您打算包装任何异常,该异常将是您正在使用的代码引发的DbException。如果是这样,那么使用Exception可以使调用代码更轻松地知道调用代码不应捕获基类异常,而不是您的自定义异常。这是因为捕获一般的Exception通常是不好的做法。基于DbException的代码将允许您的代码用户捕获DbException并错误地捕获未包装的异常,因为您的异常和未包装的异常均基于同一类。

如果您没有包装所有异常,那么我可能会重新考虑并使DbException的异常专门化。在这种情况下,您希望用户实际上能够捕获DbExceptions(包括您的DbExceptions),或者能够以不同方式处理您的异常。对不起的华夫饼干,但我认为这确实取决于您的目标。对于它的价值,我通常会采用前一种方法,并将自定义异常基于最低的基类。

附言我不知道我是否有资格成为经验丰富的开发人员/建筑师,但是我确实有意见。

关于.net - 我应该从哪些类中派生自定义DataAccessLayerException和DuplicateEntryException?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1959708/

10-10 20:19