有关Rcpp异常的更多信息

时间:2013-04-03 17:19:31

标签: r exception rcpp

使用Rcpp编写R扩展时,是否可以在抛出异常时获取更多信息? 例如,默认情况下,当索引超出范围时,我得到:

Error in myfunction(V) :
  index out of bounds   
Calls: source ... eval -> myfunction -> .Call -> cpp_exception
Execution halted

此时我不知道它可能在代码中发生了什么。使用调试信息编译代码时是否可以打印堆栈? Rcpp例外能做到吗?

在段错误中,我想我可以尝试使用deathhandler,但我也在寻找常规例外的解决方案。

1 个答案:

答案 0 :(得分:0)

那个很可能不是来自你的代码/ Rcpp代码。

如果您使用Rcpp进行例外处理,则可以在R级别进行控制并恢复消息(假设您从std::exception等派生出来)。那里有很多例子,例如this SO post

但要捕捉这样的“随机”错误,您可能需要使用调试器。