1

在设计某些类时,我养成了使用 zope.interface 的习惯,这一切都很好,但我对异常有点不确定。我还没有看到任何文档谈论它们(尽管只是在粗略搜索之后)。首先,我想知道将某个接口的任何实现都通用的异常 X 放在哪里。

我总是可以将异常放在它自己的模块中。但是一个完整的模块可能是一个简单的例外?我不介意将它放在定义相关接口的同一个模块中,但我想知道这是否以某种方式被认为是不好的形式?

基本上,我想听听一些使用过接口并了解此约定的人的意见。

4

1 回答 1

1

最佳实践是拥有一个interfaces模块,其中包括所有记录的接口和相应的异常、常量和事件。

这样,您将包的 API 定义在一个明确定义的位置,并且查找接口的人可以看到抛出的任何异常都定义在同一位置。

以下是来自各种项目的一些示例 interface.py 文件:

于 2012-05-31T12:56:42.097 回答