千家信息网

如何进行FaultWrapper解析

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章将为大家详细讲解有关如何进行FaultWrapper解析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。FaultWrapper解析class
千家信息网最后更新 2026年11月02日如何进行FaultWrapper解析

这篇文章将为大家详细讲解有关如何进行FaultWrapper解析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

FaultWrapper解析

class FaultWrapper(base_wsgi.Middleware):#继承基础的WSGI中间件"""调用中间件堆栈,将exceptions封装成faults。"""    _status_to_type = {}@staticmethod    def status_to_type(status):        #根据状态码转换成webob相应的类型实例if not FaultWrapper._status_to_type:for clazz in utils.walk_class_hierarchy(webob.exc.HTTPError):# 遍历HTTPError类层次结构                 FaultWrapper._status_to_type[clazz.code] = clazzreturn FaultWrapper._status_to_type.get(                                  status, webob.exc.HTTPInternalServerError)()def _error(self, inner, req):        LOG.exception(_LE("Caught error: %s"), inner)        safe = getattr(inner, 'safe', False)        headers = getattr(inner, 'headers', None)        status = getattr(inner, 'code', 500)if status is None:            status = 500        msg_dict = dict(url=req.url, status=status)        LOG.info(_LI("%(url)s returned with HTTP %(status)d"), msg_dict)        outer = self.status_to_type(status)#调用exception转换方法if headers:            outer.headers = headers# NOTE(johannes): We leave the explanation empty here on        # purpose. It could possibly have sensitive information        # that should not be returned back to the user. See        # bugs 868360 and 874472        # NOTE(eglynn): However, it would be over-conservative and        # inconsistent with the EC2 API to hide every exception,        # including those that are safe to expose, see bug 1021373        if safe:            #处理翻译            user_locale = req.best_match_language()            inner_msg = translate(inner.message, user_locale)            outer.explanation = '%s: %s' % (inner.__class__.__name__,                                            inner_msg)        notifications.send_api_fault(req.url, status, inner)#调用rpc发送api错误到消息队列return wsgi.Fault(outer) #返回webob.exc.HTTPException错误对象    @webob.dec.wsgify(RequestClass=wsgi.Request)def __call__(self, req):try:return req.get_response(self.application) #执行wsgi应用程序except Exception as ex:return self._error(ex, req)#遇到exception后,调用此方法处理exception,封装成http错误返回

关于如何进行FaultWrapper解析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

错误 中间件 内容 文章 更多 知识 篇文章 处理 封装 不错 基础 堆栈 实例 对象 层次 应用程序 方法 此方法 消息 状态 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 瑰夏咖啡 苏州找大状互联网科技有限公司 国智互联网科技 科技互联网龙头 青岛互联网科技公司 广州宏创互联网科技 互联网科技上市公司 互联网科技logo设计 狮子座互联网科技培训 互联网公司会议桌创意科技软装饰 西藏七维空间互联网科技有限公司 互联网科技寓意 荆州市昕露互联网络科技有限公司 坤平互联网科技 链环科技传统企业怎么转型互联网 亳州好赞互联网科技有限公司 佛山市翊博互联网络科技有限公司 九思连强互联网电子科技有限公司 全球科技与互联网公司市值变化 艺电能源互联网科技有限公司招聘 互联网科技行业发展 以房互联网科技 互联网女皇 腾讯科技 互联网科技网站 剑昆互联网络科技有限公司临桂 语蝶互联网科技有限公司 辽宁互联网新科技 中国互联网公司排名锤子科技 明优互联网科技有限公司 工业互联网展湾科技股份有限公司
0