【发布时间】:2014-02-14 23:37:11
【问题描述】:
鉴于这个简单的瓶子代码:
def bar(i):
if i%2 == 0:
return i
raise MyError
@route('/foo')
def foo():
try:
return bar()
except MyError as e:
response.status_code = e.pop('status_code')
return e
如何编写 Bottle 中间件,以便隐式完成相同的异常处理,以便这样的代码可以与上面相同:
@route('/foo')
def foo():
return bar()
【问题讨论】:
-
您能否简单地不从具有异常类型的 bottle.HTTPResponse 派生您的异常,然后做适当的事情开始,或者您的异常的来源不是您的 Web 应用程序的一部分,因此不依赖于瓶子?
-
异常是从独立库抛出的;瓶子只是它的一个前端。
-
Bottle plugin 就足够了吗?
标签: python plugins wsgi bottle middleware