简单异常和消息传递
ezception的Python项目详细描述
ezexception(和EZMessage)
这些类提供了定义异常类和 消息属性。在
目标
- 减少了定义错误类的样板文件,这样就可以更多地使用它们。在
- 格式化不会在引发时发生,因此不会发生捕获错误 字符串计算成本。在
- 异常处理程序更容易探测异常字段。在
- 类基异常很容易定义。在
- 适用于常规的Python异常类。在
- 默认情况下与gettext模块接口。在
- 允许在错误类中关联其他i18n消息传递。在
安装
pip install ezception
注意:ezexception还没有在pypi上。在正式发布之前:
^{pr2}$使用
importezceptionclassMyWebRequester(object):classError(ezception.EZCeption):'A general error has occurred.'classOpenError(Error):'An error opening {self.url!r} has occurred.'classNoURLError(OpenError):''' No URL was provided. ''''classNoURLError(OpenError):''' The scheme {self.scheme!r} is not acceptable. '''...defopen(self,url):...stuffhappens....Ohnoes!raiseself.BadSchemeError(scheme=url.scheme)
所以在这个例子中,类定义了一个简单的错误层次结构。程序员 可以微不足道的陷阱MyWebRequester。错误捕捉由 我的网络请求者。因为定义这些错误非常简单 更可能出现健壮的异常层次结构。在
此外,在异常时不会生成消息。因为这个, 很容易捕捉和确定更好的处理代码。默认的Python 异常使用参数,这要求程序员有更紧密的耦合 用错误类获取失败的参数(或 错误类需要定义更多属性)。在
只有在打印异常时,才会发生字符串化。此外, 要显示的消息是使用gettext模块处理的,因此添加 使用regular.po可以支持此类消息的其他语言 文件夹。所有消息都由全局跟踪所有消息这么说吧 生成base.po文件也得到了简化。在
- 项目
标签: