2017-11-15 14 views
0

セットアップ:Pythonでrpy2.rinterface.RRuntimeErrorをキャッチするにはどうすればよいですか?

  • のPython 3.5.3 |連続解析を、(株)| (デフォルトでは、2017年3月6日、12時15分〇八秒)
  • マックOSX 10.13.1

問題:

私は、ダウンロードした以下のRスクリプトhttps://github.com/daleroberts/heston/blob/master/heston.r と私は繰り返しのいずれかを呼び出しますRPy2というパッケージを使ってPython経由で関数を呼び出します。今、私はR関数に送り、私の入力のいくつかのために、Rは、次のエラーが返されます。

rpy2.rinterface.RRuntimeError: Error in integrate(PIntegrand, lower = 0, upper = Inf, lambda, vbar, eta, : roundoff error was detected

は、どのように私はPythonで、この例外RuntimeErrorをキャッチについては行くのですか?

答えて

1

rpy2.rinterface.RRuntimeErrorはそう、あなたが他の例外と同じようにそれをキャッチすることができるはずExceptionから派生しています。

try: 
    # your code 
except rpy2.rinterface.RRuntimeError: 
    # handle exception 

はRPy2パッケージはPythonの/ C APIで書き込まれ、実行時例外がで作成されました:Exceptionから派生した新しい例外クラスを返し

RPyExc_RuntimeError = PyErr_NewException("rpy2.rinterface.RRuntimeError", NULL, NULL); 

https://docs.python.org/2/c-api/exceptions.html#c.PyErr_NewException

1

Pythonは例外を捕捉するのを比較的簡単にします。

try: 
    # some code 
except Exception, e: 
    # Log the exception. 
+0

例外は例外ではありません。 – sbm

+0

RuntimeErrorはPythonの例外です。 https://docs.python.org/2/library/exceptions.html#exceptions.RuntimeError – collector

関連する問題