2016-04-25 5 views
0

だから私はpyinstallerを使ってPythonを実行可能にすることができます。エラーが発生した場合、Python実行可能ファイルを一時停止する方法はありますか?

ただし、エラーが発生するたびに即座にプログラムが終了するため、エラーが見つからない場合があります。

私はおそらくそれを停止するためにtime.sleep(30000)を使用することができます知っています。

ただし、コードがtime.sleep(30000)に達する前にエラーが発生した場合は、シャットダウンします。

まとめて、シャットダウンしないようにする方法は、間違いがどこにあるのか分かりますか?

+1

エラーをキャッチするために 'try except'を使用してください。 – haifzhan

+0

@haifzhan - OPはエラーを表示し、抑制しません。 – TigerhawkT3

+0

try/exceptはエラーを抑制しません。 – kindall

答えて

1

ダブルクリックするだけで実行可能ファイルを実行している場合は、コンソールから実行してみてください。例えば、 Windowsで:

CMDで、より良い方法が実装され、ロギングと他のモジュールは、ファイルに書き込むことができるようにロガーを導入することであろう

cd executable_path myexecutable.exe

を実行します。

また、あなたがトライを除くブロック内のコードを置くことができます:あなたはコンソールプログラム(可視コンソールウィンドウで、すなわちプログラム)を実行しているよう

try: 
    #my_code_here 
    print('Here is where the exception is') 
except Exception as e: 
    print('Unexpected error:' + str(e)) 
+0

だから、私は試しに全体のコードを追加することができます:?私は試しに、前を除いて知っている。しかし、私はこのようなことをすることができるかどうかはわかりません。試してみると、コード全体(おそらく1000行)を追加します。 –

+0

私は完璧に動作するあなたのコンソールの答えが好きです!ありがとうございました! –

+0

はい、try-exceptの下にコード全体を置き、例外を捕まえることができます。例外をコンソールに出力したり、ログファイルに入れたり、両方を実行したりすることができます。 –

0

ファイルをダブルクリックする代わりに、コマンドラインから実行してください。プログラムが自動的に作成したターミナルウィンドウも、プログラムが終了すると自動的に閉じられますが、自分でターミナルを開いてコマンドラインからプログラムを実行すると、開いているターミナルには触れず、エラーを読むことができます。

0

あなたは火星リーが言ったようにtry exceptを使用するか、ラインの一定量の後

print("Test 1"); 

を行うことができます。

1

あなたの説明から、それは聞こえます。

  1. コンソールウィンドウでそれを実行します。

    その場合は、次の2つのオプションがあります。これは、コマンドプロンプトまたはターミナルエミュレータ(コンピュータに付属)を実行し、プログラムが格納されているディレクトリにcdを入れ、プログラム名を入力して実行するだけです。プログラムが終了すると(例えばエラーのために)トレースバックが出力され、プロンプトに戻ります。

  2. エラーをキャッチし報告するプログラム全体にtry/exceptを追加できます。たとえば:

    try: 
        main() 
    except Exception: 
        import traceback 
        traceback.print_exc() 
        raw_input("Program crashed; press Enter to exit") 
    
+0

ありがとうございました!あなたの答えはとても良いとクリアです! –

0

はここでPythonの例外フックを使用して、別の方法です:Pythonは例外を印刷したいときはいつでも

import sys 

def myexcepthook(type, value, traceback, oldhook=sys.excepthook): 
    oldhook(type, value, traceback) 
    raw_input("Press RETURN. ") # use input() in Python 3.x 

sys.excepthook = myexcepthook 

例外フックが呼び出されます。この場合、以前にインストールされた例外フック(例外を出力する)を呼び出し、ユーザがReturnキーを押すのを待ちます。

+0

お返事ありがとうございます。しかし、私はあなたのコードの仕組みを理解していません。私のためにそれを説明できますか?ありがとうございました:) –

+0

説明が少し追加されました。あなたがもっと必要ならば教えてください。 – kindall

関連する問題