【问题标题】:How to handle exception with parameters in Python如何在 Python 中处理带参数的异常
【发布时间】:2018-03-12 07:46:10
【问题描述】:

在 Python 3.x 中,处理具有参数的异常的正确语法是什么。 我专门尝试处理 this page 上记录的 WriteError

我正在编写代码来处理它:

   except pymongo.errors.WriteError(err, code, dtls):
       logging.error("DB Write Error. err={}; code={}; dtls={}".format(err, code, dtls))

这不起作用。

我什至查看了Erros and Exceptions 文档。但是在那里找不到。

你能告诉我处理这些异常的正确方法吗?

【问题讨论】:

    标签: python python-3.x exception pymongo pymongo-3.x


    【解决方案1】:

    您首先捕获错误,然后检查其属性(如果它不是您想要处理的异常,则重新引发异常)。异常的内容没有模式匹配。

    except pymongo.errors.WriteError as exc:
        logging.error("DB WriteError. err={}; code={}; dtls={}".format(exc.err, exc.code, exc.dtls))
    

    【讨论】:

    • 我真傻。你说的对。我试图进行模式匹配,并没有考虑将其分配给变量。谢谢。
    【解决方案2】:

    except 块只需要异常的类型。如果您愿意,当然可以在块内使用它的属性:

    except pymongo.errors.WriteError as e:
       logging.error("DB Write Error. err={}; code={}; dtls={}".format(e.err, e.code, e.dtls))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-03
      • 2021-09-27
      • 1970-01-01
      • 1970-01-01
      • 2018-11-15
      • 2021-09-16
      相关资源
      最近更新 更多