我已经编写了一个Django应用程序,它通过Python包装器与第三方API交互(discus,尽管这个细节并不重要)。当服务不可用时,Python包装器将引发异常。在
应用程序处理此类异常的最佳方法是禁止这些异常,这样页面的其余内容仍然可以显示给用户。下面的方法很好。在
try:
somemodule.method_that_may_raise_exception(args)
except somemodule.APIError:
pass
某些视图包含几个这样的调用。在try/except中包装每个调用是否是抑制可能的异常的最佳方法?在
从视图调用API不是一个好主意。你应该创建另一个模块。在
例如,当我制作Facebook应用程序时,我会创建
^{1}$publish.py
文件来存储所有“发布到实时流”调用。该模块中的函数根据应调用的时间命名。即:那么你的观点非常清晰:
^{pr2}$以这种方式组织代码后,可以创建用于忽略异常的装饰器:
您还可以创建默认情况下不“忽略”的函数,并在视图中添加忽略代码:
可以将API调用包装在另一个函数中。说:
^{1}$可以调用此函数,而不是在每个视图中调用
try/except
块。这至少有助于减少您编写的代码行数,并为处理此类异常提供一个公共场所。在更新
@Yorirou是对的。更改代码以添加此良好实践。在
相关问题 更多 >
编程相关推荐