私はそれは、Python 2.7で例外を発生させる際に行うことができますミスについてです、つらい時、このいずれかを考え出すを持っている:最初の要素が例外の場合、タプルを呼び出すのはなぜですか?
try:
raise [1, 2, 3, 4]
except Exception as ex:
print ex
ここでのメッセージは、例外はBaseExceptionから導出古いスタイルのクラスまたはでなければなりません」です例外は、int型、古いスタイルのクラスやBaseException由来であってはならないこと 『: - 「
try:
raise (1, 2, 3, 4)
except Exception as ex:
print ex
ここにメッセージがある。この部分はOKですが、私はタプルに変更したときに、私は混乱しています』、表示しませんなぜそれがタプルではなくintを上げると解釈されますか?
Futhermore:ここ
try:
raise (Exception, 'a message')
except Exception as ex:
print ex
我々は実際に(私たちはINTを上げた前の例と比較すると、一貫性のある動作)例外を上昇している - 私は簡単にこれは、このためだけの別の方法であると考えました:
try:
raise Exception, 'a message'
except Exception as ex:
print ex
しかし、この場合には、 'メッセージ' は例外CTORに渡されている(docs.python.orgに文書化されているように)
できる人expla 2番目と3番目のケースでは、可能性があります私はこれを担当している通訳でコードを指す?
私は再帰的タプルのアンラップを認識していなかったので、他の要素が無視されている理由を知ることができませんでした.PEPは私が探していた欠落したリンクでした。 – dahpgjgamgan