在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文档。但在那里找不到。
你能告诉我处理这类例外的正确方法吗?
答案 0 :(得分:1)
首先捕获错误,然后检查其属性(如果不是您要处理的异常,则重新添加异常)。异常内容没有模式匹配。
except pymongo.errors.WriteError as exc:
logging.error("DB WriteError. err={}; code={}; dtls={}".format(exc.err, exc.code, exc.dtls))
答案 1 :(得分:1)
except
块只需要例外的类型。当然,如果你愿意,你可以在块中使用它的属性:
except pymongo.errors.WriteError as e:
logging.error("DB Write Error. err={}; code={}; dtls={}".format(e.err, e.code, e.dtls))