2017-11-17 10 views
0

私はいくつかのアプリケーションを起動するPythonスクリプトを実行しています。私は、起動したアプリケーションがクラッシュしたかどうかを検出する方法が必要です。いくつかのアプリはプログラムでアプリケーションを検出する方法がWindowsでクラッシュしましたか?

The app has crashed and has a dialog box saying app has crashed

どのように私はクラッシュを検出することができますを扱う内部のクラッシュを持っていますか?

+0

ステップ2でプロセスを停止したターゲットプラットフォームは何ですか? – Mark

+0

おそらく、あなたのプロセスが実行中であり、それに応じて反応しているかどうかを確認できますか? [この質問を見る](https://stackoverflow.com/questions/3429250/determining-running-programs-in-python) – Eric

+0

はい例外はアプリケーションによって内部的に処理され、ダイアログボックスを表示するためにプロセスが実行されています –

答えて

1

内部のクラッシュ処理がある場合、検出することはできません。アプリケーションはエラーを処理し、正常に終了します。デバッガとして自分自身を添付すると、これを検出することさえできません。

  1. デバッガが例外を知らされます:

    理由は、例外ディスパッチです。これは最初のチャンス例外と呼ばれます。ただし、これは「正常」である可能性があります。アプリケーションによって予期されるFileNotFound。

  2. Windowsは例外を処理したい人を探しています。これは、Pythonアプリケーションのexceptブロック、C#またはC++のcatchブロック、または一般的な "未処理の例外ハンドラ"さえあります。
  3. アプリケーションを処理する人がいない場合は、デバッガに再度通知されます。今度は、例外は2回目の例外としてマークされます。これは、アプリケーションが次にクラッシュすることを意味します。あなたがステップ3の一部として、情報になるために探している

、しかし、アプリケーションが既に

関連する問題