7

少し前に書かれたPythonコードを読んでいて、これを見つけました:

try:
    # do some stuff
except 0:
    # exception handling stuff

そして、0以外が何を意味するのかわかりませんか?私は推測しています:何もキャッチしない、つまり例外を伝播させるか、0を削除してデバッグモードをオンまたはオフにするある種のスイッチであると想定され、すべてをキャッチします。

誰でも洞察を貸してもらえますか?グーグル検索では何も出ませんでした...

ありがとう!

いくつかのサンプル コード (リクエストによる):

            try:
                if logErrors:
                    dbStuffer.setStatusToError(prop_id, obj)
                    db.commit()
            except 0:
                traceback.print_exc()
4

2 に答える 2

1

Python ドキュメントから:

「[...] [except] 句は、結果のオブジェクトが例外と「互換性がある」場合、例外と一致します。オブジェクトは、例外オブジェクトのクラスまたは基底クラス、またはタプルである場合、例外と互換性があります。例外と互換性のあるアイテムを含んでいます。」

実際には、式の型を使用して、except 句が例外に一致するかどうかが判断されます。0そのまま整数型であり、その型の例外が一致します。

整数は例外として発生できないため、これはexcept何もキャッチしない無効なクラスです。

于 2013-04-05T14:16:26.900 に答える