如何在Python中使用参数处理异常

如何在Python中使用参数处理异常,python,python-3.x,exception,pymongo,pymongo-3.x,Python,Python 3.x,Exception,Pymongo,Pymongo 3.x,在Python3.x中,处理具有参数的异常的正确语法是什么。 我特别想处理上记录的WriteError 我正在编写代码来处理它,如下所示: except pymongo.errors.WriteError(err, code, dtls): logging.error("DB Write Error. err={}; code={}; dtls={}".format(err, code, dtls)) 这是行不通的 我甚至看了一下文档。但是在那里找不到它 您能告诉我处理此类

在Python3.x中,处理具有参数的异常的正确语法是什么。 我特别想处理上记录的WriteError

我正在编写代码来处理它,如下所示:

   except pymongo.errors.WriteError(err, code, dtls):
       logging.error("DB Write Error. err={}; code={}; dtls={}".format(err, code, dtls))
这是行不通的

我甚至看了一下文档。但是在那里找不到它


您能告诉我处理此类异常的正确方法吗?

您首先捕获错误,然后检查其属性(如果您不想处理异常,请重新启动异常)。异常内容上没有模式匹配

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

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

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

我真傻。你是对的。我试图进行模式匹配,但没有考虑将其分配给变量。谢谢