我应该在Interface-Assembly中有异常类型吗?最佳做法?

时间:2015-07-29 12:37:18

标签: .net design-patterns

我有一个只包含接口的程序集,以避免不依赖的依赖。现在我有一个名为UndefinedIHttpMacTokenException的异常类型。因此,您可以看到异常涉及IHttpMacToken的接口类型。现在我认为最好在interface-assembly中包含异常类型。但这有点矛盾。如果您听到程序集名称(somenamespace.Interfaces)。你不会指望它包含类类型(例外)。

你能帮助我吗?在这种情况下,最佳做法是什么? 谢谢你的努力。

1 个答案:

答案 0 :(得分:1)

如果期望接口的实现在某些特定情况下抛出某些异常,则相应的异常应该是包含接口的程序集的一部分。从某种意义上说,代码抛出的异常是程序集接口的一部分,即使异常由类而不是接口表示。

此外,如果您的接口使用您不允许用户扩展的特定类(即密封类),您也应该包括这些类。最后,所有enum也应该是程序集的一部分。

查看System.Data程序集,了解.NET的主要组件如何执行此操作的一个很好的示例。程序集的主要目的是提供15个用于从.NET访问数据库的接口。所有异常类,用作参数和返回值的类以及enum都是System.Data的一部分。

相关问题