2

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

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

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

这是行不通的。

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

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

4

2 回答 2

1

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

except pymongo.errors.WriteError as exc:
    logging.error("DB WriteError. err={}; code={}; dtls={}".format(exc.err, exc.code, exc.dtls))
于 2017-09-30T17:20:50.880 回答
1

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

except pymongo.errors.WriteError as e:
   logging.error("DB Write Error. err={}; code={}; dtls={}".format(e.err, e.code, e.dtls))
于 2017-09-30T17:21:43.427 回答