2017-09-30 15 views
2

Python 3.xでは、パラメータを持つ例外を処理する正しい構文は何ですか? 私は特に処理しようとしていますWriteErrorthis pageに記載されています。Pythonのパラメータで例外を処理する方法

ように私はそれを処理するコードを書いている:これは動作しない

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

私はさらにErros and Exceptionsのドキュメントを見ました。しかし、そこにそれを見つけることができませんでした。

これらの例外を処理する正しい方法を教えていただけますか?

答えて

1

最初にエラーをキャッチし、その属性を調べます(処理したいものがない場合は例外を再調査します)。例外の内容にパターンマッチングはありません。

+1

私の愚かなことです。あなたが正しいです。パターンマッチを試みていて、それを変数に割り当てることについて考えなかった。ありがとう。 – ameyazing

1

ブロックブロックには、例外の型が必要です。あなたが望むのであれば、ブロック内ではもちろん、その属性を使うことができます:

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