いくつかの機能的な例外処理を行うコードがあり、すべて正常に動作しますが、例外が発生したときに例外が発生しますが、デバッグしているときには、かなり私は彼らにしたい。例外がPythonに渡される
例A:
>>> 3/0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: integer division or modulo by zero
例B:これらの例の両方で
>>> try: 3/0
... except Exception as e: raise e
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
ZeroDivisionError: integer division or modulo by zero
、例外は本当に我々が3/0を行おうと行1、で発生しますが、中後者の例では、2行目で発生したと言われています。
それは別の例外、次の出力を生成何かであるかのように、例外を発生させるためのPythonでの方法があります:あなたがキャッチされた例外を再上げるとき
>>> try: 3/0
... except Exception as e: metaraise(e)
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: integer division or modulo by zero
しかし、新しいレイズの痕跡についての情報はありません。上記のキャッチャーは、例外が元の場所でのみ発生したと信じるためにだまされます。 2番目のライザーは存在を隠してしまい、デバッグのケースではかなり混乱することがあります。 – Alfe