2017-01-04 9 views
-1

私はsubprocess.CalledProcessErrorでそれをキャッチすることができますが、RuntimeErrorが存在することを確認します。私は "subprocess.check_call"メソッドを使用しています。PythonでサブプロセスにRuntimeErrorがあったかどうかをチェックする方法は?

私はこのようなことを試みたが、うまくいかなかった。

try: 
     subprocess.check_call(arguments, cwd=<my_cwd>) 
    except subprocess.CalledProcessError: 
     try: 
      raise 
     except RuntimeError: 
      print "Runtime Error....." 

答えて

0

あなたが望むことはできないと思います。 check_callメソッドの説明を見てください。

引数を指定してコマンドを実行します。コマンドが完了するのを待ちます。 終了コードが0の場合は戻り、そうでない場合は CalledProcessErrorを送出します。 CalledProcessErrorオブジェクトはreturncode属性に の戻りコードを持ちます。 引数はcall関数の引数と同じです。 例: check_call(["ls", "-l"])

あなたが唯一の問題は、スクリプトのリターンコードがあるので、RuntimeErrorが発生した場合、あなたが言うことができないsubprocess.check_callを使用してPythonスクリプトを呼び出す場合。

0

あなたが求めていることはできません。彼らは別々のプロセスです。親は子によって発生した例外をキャッチすることはできません。キャッチすることができるCalledProcessErrorは、子の終了ステータスを調べた後に、親自体にcheck_callで発生します。

関連する問題