gpt4 book ai didi

python - Bottle 中间件捕获某种类型的异常?

转载 作者:太空狗 更新时间:2023-10-29 20:15:46 27 4
gpt4 key购买 nike

给定这个简单的 Bottle 代码:

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()

最佳答案

您可以使用利用 abort 的插件优雅地完成此操作:

from bottle import abort

def error_translation(func):
def wrapper(*args,**kwargs):
try:
func(*args,**kwargs)
except ValueError as e:
abort(400, e.message)
return wrapper

app.install(error_translation)

关于python - Bottle 中间件捕获某种类型的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21324828/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com