为了账号安全,请及时绑定邮箱和手机立即绑定

如何在像 mixin 这样的常见类中捕获所有异常

如何在像 mixin 这样的常见类中捕获所有异常

墨色风雨 2021-07-09 14:15:49
我在 python django 应用程序中有基于类的视图。他们中的大多数处理相同类型的异常,例如:class A{    try:        func1()    except type1 as e:        handle1()    except type2 as e:        handle()}class B{    try:        func2()        func3()    except type1 as e:        handle1()    except type2 as e:        handle()}我想将这个异常处理保留在一个公共类中(可能是一个 mixin)。需要异常处理的类将继承通用类。将重复的异常处理保留在一个公共类中。我正在使用 python3 和 django1.11 - 基于类的视图
查看完整描述

2 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

如果您使用的是 django 类基本视图,则可以覆盖dispatch并创建一个 mixin。在基于 Django 类的视图调度方法中,接收请求并最终返回响应。


你可以这样做 -


class ExceptionHandlingMixin(object):

    def dispatch(self, request, *args, **kwargs):

        try:

            func1()

        except type1 as e:

            handle()

        except type2 as e:

            handle()

        return super(ExceptionHandlingMixin, self).dispatch(request, *args, **kwargs)

以您的方式修改它。供参考访问文档。


查看完整回答
反对 回复 2021-07-13
  • 2 回答
  • 0 关注
  • 158 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号