是否有可能捕获 C 中 Rf_eval R 的错误?

2024-01-25

我需要捕获一个错误Rf_eval in C。这可能吗?

一些示例函数

SEXP foo(SEXP x, SEXP env) {
   SEXP res;
   PROTECT(res = Rf_eval(x, env));
   UNPROTECT(1); 
   return res;
}

我努力了Rcpp_eval from Rcpp and Rcpp11,但这两个都不适合我的情况,我需要打电话Rf_eval直接地。是否可以直接在 C 中捕获错误?如果是这样怎么办?


在 Rinternals.h 中使用 R_tryEval 或 R_tryEvalSilent

#include <Rdefines.h>

SEXP foo(SEXP fun, SEXP env)
{
    int err = 0;
    R_tryEval(fun, env, &err);
    if (err)
        Rprintf("error occurred\n");
    return R_NilValue;
}

with

> .Call("foo", quote(stop("oops")), .GlobalEnv)
Error: oops
error occurred
NULL

这是一个更完整的示例,检索最后一个错误

#include <Rdefines.h>

SEXP silent(SEXP fun, SEXP env, SEXP errmsg)
{
    int err = 0;
    SEXP result = PROTECT(R_tryEvalSilent(fun, env, &err));
    if (err) {
        SEXP msg = PROTECT(R_tryEvalSilent(errmsg, env, &err));
        if (!err)
            Rprintf("error occurred: %s",
                    CHAR(STRING_ELT(msg, 0)));
        else
            Rprintf("(unknown) error occurred");
        UNPROTECT(1);
        result = R_NilValue;
    }

    UNPROTECT(1);
    return result;
}

used as

.Call("silent", quote(stop("oops")), .GlobalEnv, quote(geterrmessage()))

在 R 级别留下尽可能多的代码(例如,条件错误处理)可能很有意义,可以通过包装要评估的函数或提供自定义错误处理函数来代替geterrmessage().

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否有可能捕获 C 中 Rf_eval R 的错误? 的相关文章

  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • free 和 malloc 在 C 中如何工作?

    我试图弄清楚如果我尝试 从中间 释放指针会发生什么 例如 看下面的代码 char ptr char malloc 10 sizeof char for char i 0 i lt 10 i ptr i i 10 ptr ptr ptr pt
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • 无限循环与无限递归。两者都是未定义的吗?

    无副作用的无限循环是未定义的行为 看here https coliru stacked crooked com view id 24e0a58778f67cd4举个例子参考参数 https en cppreference com w cpp
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 文本挖掘 pdf 文件/词频问题

    我正在尝试挖掘一篇具有丰富 pdf 编码和图表的文章的 pdf 我注意到 当我挖掘一些 pdf 文档时 我得到的高频词是 phi taeoe toe sigma gamma 等 它与某些 pdf 文档配合良好 但与其他文档配合使用时却得到这
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • 如何仅删除单括号并保留配对的括号

    你好 我亲爱的老师 R 用户朋友们 我最近开始认真学习正则表达式 最近我遇到了一种情况 我们只想保留配对括号 并省略未配对的 这是我的样本数据 structure list t1 c Book Pg 1 Website Online Jou
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置

随机推荐

  • SSIS 问题无法解密受保护的 XML 节点

    我创建了一个 SSIS 包 它从 ftp 服务器中提取文件并将其保存到我的本地驱动器 但我遇到了这个问题 有了同样的错误消息 我只收到警告 但今天作业失败了 Message 以用户身份执行 cam Package Runner 适用于 64
  • 使用 Google 本机客户端 (NaCl) 的并行端口访问

    我正在尝试写一个Chrome应用程序 https developer chrome com apps about apps这将支持通过连接到计算机的旧打印机进行打印并口 http en wikipedia org wiki Parallel
  • android 进入电影院时如何通知用户?

    在我的 Android 应用程序中 我有地图视图和当前位置 现在显示最近的剧院 我想在用户进入剧院 如地理围栏 时通知用户 我在 NET 上搜索并没有找到任何支持地理围栏的 Android api 请帮助如何做到这一点 注意 我尝试过htt
  • 导入 .svg 并调整 .svg 大小在 next.js 中使用样式组件

    我目前正在尝试将 svg 导入 next js 项目 但失败了 我尝试以与 React 项目相同的方式导入 svg 创建了typing d ts 并导入 svg 之类的组件 但这不起作用 declare module svg import
  • !IsPostBack 上的隐藏字段为 null,IsPostBack 上的隐藏字段不为 null

    首先 我对我的问题标题不明确表示歉意 我不确定如何在标题中简洁地描述我的问题 我的 aspx 中有一个隐藏字段
  • 将数字拆分为四舍五入的数字

    是否有一个库可以将一个数字分成多个部分 但确保所有部分都是四舍五入的数字 例如 将 100 分成 3 将是33 33 但我希望对其进行四舍五入并确保总和也保持为 100 34 33 33 您可以使用内置函数divmod https docs
  • 如何在 WordPress 中集成 Razorpay 支付网关

    我计划将 Razorpay 支付网关集成到我的客户网站中 该网站是用 WordPress 开发的 其中场景如下 用户将根据他的要求填写查询表 然后根据客户的要求 业主将回复费用和一些代码给客户 通过手机 电子邮件通信 客户将进入网站的支付页
  • 如何正确格式化 python 日志格式化程序?

    我尝试按照 Python 日志格式化程序输出字符串的方式进行格式化 我写了一个简单的例子来说明这个问题 import logging from pathlib import Path create auxiliary variables l
  • 如何使 Install-Module 也安装任何所需的模块?

    我正在开发一个 PS 模块 它依赖于 SqlServer 这是模块清单文件 ModuleVersion 1 0 19103 11 GUID 59bc8fa6 b480 4226 9bcc ec243102f3cc Author Compan
  • 使用 purrr 递归处理任意层次结构

    假设我想根据某些特定标准修剪由 R 中的嵌套列表层次结构组成的树 我可以使用 轻松 地做到这一点lapply Based an example from the NetworkD3 documentation https christoph
  • 使用 Requests 库通过 Python 3.7 发出异步请求

    我需要做异步请求 http docs python requests org en v0 10 6 user advanced asynchronous requests使用请求库 在 Python 3 7 中如果我尝试from reque
  • 如何在 Swift 中检查位字段(特别是 SCNetworkReachabilityFlags)中的标志?

    我有一个SCNetworkReachabilityFlags变量并想要检查它的特定值 例如如果网络可通过 WWAN 访问 The SCNetworkReachabilityFlags类型是一个typealias for UInt32各种选项
  • WooCommerce REST API 按 ID 获取多个产品

    我需要按列表中的每个产品显示所有相关产品 例如 在我的应用程序中 我有 3 个产品 id 为 1 2 3 产品 ID 1 具有相关的 5 6 7 产品 ID 2 具有相关的 8 和 9 等 现在我有一个包含所有相关的数组 5 6 7 8 9
  • 可移植类库的实体框架

    当我尝试使用 Nuget EntityFramework 时 我正在尝试为可移植类库创建存储库 实体框架 无法添加对 System ComponentModel DataAnnotations 的引用 请确保它位于全局程序集缓存中 有什么想
  • C++ 中的构造函数和析构函数是如何实现的?

    我有 2 个类 Base 和 Derived 从 Base 公开派生 当我写下 Derived d1 new Derived delete d1 编译器认为 d1 是 Derived 类型对象 因此它调用派生类构造函数 派生类构造函数调用基
  • 分支发散、CUDA 和 Kinetic Monte Carlo

    因此 我有一个在晶格上使用动力学蒙特卡罗的代码来模拟某些东西 我正在使用 CUDA 在我的 GPU 上运行此代码 尽管我相信同样的问题也适用于 OpenCl 这意味着我将格子划分为小的子格子 每个线程都在其中一个子格子上运行 由于我正在进行
  • UnicodeDecodeError:数据意外结束

    我有一个巨大的文本文件我想打开 我正在分块读取文件 避免与一次读取太多文件相关的内存问题 代码片段 def open delimited fileName args with open fileName args encoding UTF1
  • TFS API dll 的 SpecificVersion=False

    我们的 Web 应用程序大量使用 TFS API 我们使用 TFS 2010 API dll 开发并编译它 我们还设置 SpecificVersion False 问题是 当我们部署到具有 TFS 2012 而不是 TFS 2010 的服务
  • Android:子类图库不会通过 onKeyDown 事件滚动

    我有一个子类 Gallery 小部件 我自定义了它的 onFling 方法 否则一切都应该与原始 Gallery 小部件相同 我正在尝试使用以下方法为其向左或向右滚动设置动画 gallery onKeyDown KeyEvent KEYCO
  • 是否有可能捕获 C 中 Rf_eval R 的错误?

    我需要捕获一个错误Rf eval in C 这可能吗 一些示例函数 SEXP foo SEXP x SEXP env SEXP res PROTECT res Rf eval x env UNPROTECT 1 return res 我努力