如何在Python中捕获rpy2.rinterface.RRuntimeError?

sbm*_*sbm 1 python exception-handling runtime-error r

设定:

  • Python 3.5.3 | Continuum Analytics,Inc. | (默认值,2017年3月6日,12:15:08)
  • Mac OSX 10.13.1

问题:

我已经下载了以下R脚本https://github.com/daleroberts/heston/blob/master/heston.r ,我使用RPy2软件包通过Python反复调用了其中的一个函数。现在,对于我输入到R函数中的某些输入,R返回以下错误:

rpy2.rinterface.RRuntimeError:积分错误(PIntegrand,Lower = 0,upper = Inf,lambda,vbar,eta,:检测到舍入错误

如何在Python中捕获此RuntimeError?

eug*_*nhu 6

RRuntimeError来源于Exception所以你应该能够赶上它,你会与任何其他异常。

try:
    # your code
except rpy2.rinterface.RRuntimeError:
    # handle exception
Run Code Online (Sandbox Code Playgroud)

在rpy2 v3.0及更高版本中RRuntimeError似乎已移至其他位置(请参阅文档中的示例代码),因此您可能需要使用以下代码:

try:
    # your code
except rpy2.rinterface_lib.embedded.RRuntimeError:
    # handle exception
Run Code Online (Sandbox Code Playgroud)

有关此内容的更多信息:https : //docs.python.org/3/tutorial/errors.html#handling-exceptions