烧瓶错误处理的最佳实践是什么?

亚当·休斯

为了将400/500响应返回flaskWebapp中的客户端,我已经看到以下约定:

中止

import flask
def index(arg):
    return flask.abort("Invalid request", 400)

元组

def index(arg):
    return ("Invalid request", 400)

响应

import flask
def index(arg):
    return flask.Response("Invalid request", 400)

有什么区别,何时会首选?

相关问题

来自Java/Spring,我习惯于使用一个与之关联的状态代码来定义一个自定义异常,然后在应用程序抛出该异常时,带有该状态代码的响应会自动返回给用户(而不是必须显式捕获它并返回一个如上所示)。这可能flask吗?这是我的小尝试

from flask import Response

class FooException(Exception):
    """ Binds optional status code and encapsulates returing Response when error is caught """
    def __init__(self, *args, **kwargs):
        code = kwargs.pop('code', 400)
        Exception.__init__(self)
        self.code = code

    def as_http_error(self):
        return Response(str(self), self.code)

然后使用

try:
    something()
catch FooException as ex:
    return ex.as_http_error()
索拉卜

最佳实践是创建您的自定义异常类,然后通过错误处理程序装饰器向Flask应用注册。您可以从业务逻辑中引发自定义异常,然后允许Flask Error Handler处理任何自定义的异常。(类似的方法也可以在春季完成。)

您可以使用如下所示的装饰器并注册自定义异常。

@app.errorhandler(FooException)
def handle_foo_exception(error):
    response = jsonify(error.to_dict())
    response.status_code = error.status_code
    return response

您可以在此处了解更多有关实现API异常的信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Spring Data JPA错误处理的最佳实践是什么

处理 RxSwift 重试和错误处理的最佳实践是什么

使用Catalyst :: Controller :: REST进行错误处理的最佳实践是什么

PHP mysqli最佳实践错误处理

错误处理匿名函数的最佳实践

Elixir中错误处理的最佳方法是什么

VueX中的VueJS错误处理存储最佳实践

Angular2错误处理最佳实践

最佳实践:错误处理Ruby(Rails)到iOS(AFNetworking)

在C ++中重现“ cold / never_inline”错误处理技术的最佳方法是什么?

在angular.js应用程序中全局进行错误处理的最佳方法是什么?

使用 Python Lambda 处理 AWS Step Function 中的意外错误的最佳实践是什么?

在Combine中处理发布者错误的最佳实践是什么?(从CoreLocation发布标题更新)

对于客户端和服务器错误,无状态React表单的最佳错误处理流程是什么?

Extjs 6:处理重复配置的最佳实践是什么

在Breeze中处理多租户安全的最佳实践是什么?

在git仓库中处理密码的最佳实践是什么?

在Mapper或Reducer中处理异常的Hadoop最佳实践是什么?

实施Rx处理程序的最佳实践是什么?

处理作曲家废弃包装的最佳实践是什么?

在 Laravel 中处理空的雄辩查询的最佳实践是什么?

使用ASP.NET Web API进行错误处理的最佳实践

使用WAI-ARIA的可访问错误处理-最佳实践?

使用快速错误处理程序的优势是什么?

在Dart中管理登录/功能错误的最佳实践是什么?

RestController的最佳实践是什么?

这是在 javascript / node js 中编写处理错误处理 then-catch 或 try-catch 的最佳实践

时钟类错误处理的最佳方法?

Swift错误处理最佳做法