2017-08-15 19 views
-1

このトピックについていくつかの回答がありました。そのうちのいくつかは(Python 3.6を使用しています)古くなっていますが、これを行うための最善の方法についてはまだ分かりません。Pythonでエラーが発生しました

私はスクリプトを実行できるようにしたいと思います。エラーが発生した場合は、一時停止するポイントにジャンプして、ローカル変数の値をテストして不具合を確認します。

他の言語(例:VBA)On Error Goto ErrorHandlerを使用してエラーハンドラにブレークポイントを設定し、エラーの説明と行番号を出力してから、LocalsまたはImmediateウィンドウを使用します私の変数がその時点でどのような値を持っているかを知ることができます。

try/except文を一杯にしたくないし、毎回デバッグモードで実行したくない。

私は問題を見ている間、一時停止する単純なPythonesque方法はありますか?

+2

'try-except'? https://docs.python.org/3.6/tutorial/errors.html – DeepSpace

+0

前述のとおり、これは予期しないエラーです。何らかのエラーが発生したときに一時停止します。 – KantarChris

答えて

0

pdbモジュールが便利です。

モジュールpdbは、Python プログラム用のインタラクティブなソースコードデバッガを定義しています。ソースラインレベルでのステップ、スタックフレームの検査、ソース コードリスト、および任意のスタックフレームのコンテキスト の任意のPythonコードの評価を設定する(条件付き)ブレークポイントをサポートしています。また、死後のデバッグをサポートし、プログラム制御の下で呼び出される になることができます。

pdbは、ブレークポイントと死後のデバッグの設定に役立ちます。私はこれがあなたが探しているものだと信じています。ドキュメントから再び

、:実行中のプログラムからデバッガに侵入する

典型的な使い方はあなたが デバッガに侵入する場所で

import pdb; pdb.set_trace() 

を挿入することが です。このステートメントに続くコード をステップ実行し、continueコマンドを使用してデバッガなしで実行し続けることができます。

+0

私はそれを見ました。たぶん私はそれを正しく使用していないだろうが、それは正しいポイントで壊れるようにプログラムを変更する必要があるようだ。 – KantarChris

+0

@KantarChrisはい。 'pdb.set_trace()'を使ってブレークポイントを追加する必要があります。 –

+0

@KantarChris知っていましたか? Python -i script.pyのように、インタラクティブなフラグでスクリプトを実行することもできます。スクリプトが終了するかエラーが発生すると、インタプリタが呼び出されてデバッグが行われます。グローバルスコープ内のデータしか見ることができないことに注意してください。 –

関連する問題