- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
在 ruby 中,
begin
# ...
rescue
# ...
end
不会捕获不是 StandardError
子类的异常。在 C 中,
rb_rescue(x, Qnil, y, Qnil);
VALUE x(void) { /* ... */ return Qnil; }
VALUE y(void) { /* ... */ return Qnil; }
会做同样的事情。我如何从 ruby C 扩展中 rescue Exception => e
(而不仅仅是 rescue => e
)?
最佳答案
Ruby 需要更多文档。我不得不进入 ruby 源代码,这是我发现的:
VALUE
rb_rescue(VALUE (* b_proc)(ANYARGS), VALUE data1,
VALUE (* r_proc)(ANYARGS), VALUE data2)
{
return rb_rescue2(b_proc, data1, r_proc, data2, rb_eStandardError,
(VALUE)0);
}
所以,我的问题的答案(我猜)是:
rb_rescue2(x, Qnil, y, Qnil, rb_eException, (VALUE)0);
VALUE x(void) { /* ... */ return Qnil; }
VALUE y(void) { /* ... */ return Qnil; }
关于c - Ruby c 扩展 : How can I catch all exceptions, 包括不是 StandardErrors 的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3216769/
为了处理 Rails 异常,我看到人们使用“raise SomeException.new”或“raise SomeException”,有什么区别? 说如果我有课 class UnableToCr
为什么我从 GoodnessOfFit.StandardError 得到错误的答案 (err2)?在下面的代码中,我自己进行计算并得到正确的答案 (err3)。我从 GoodnessOfFit.RSq
首先,在 Xcode 中调试和运行时,一切都按预期工作。 但是当我尝试“共享”我的应用程序时,即进行发布构建时,我的 NSTask 将不会输出任何标准输出,而标准错误会被输出。这怎么可能? 我的代码
我目前正在使用 SST - Web 测试框架开发一个网站(我非常初学者),但我在使用 python 时遇到了问题 我使用了这个链接:https://pypi.python.org/pypi/sst/0
我正在为 Ruby Rails 应用程序编写测试,并且我有一段代码可以捕获我的 Redis 服务器在 Ruby 无法连接到它时抛出的错误。目前,代码如下所示: begin config.bef
我的 Rails 应用程序有一个远程数据库,我可以在其中独立于应用程序创建和存储表,而且它是“无模型的”,我不想或不需要这些表的模型或 ORM。为了访问数据,我使用了一个简单的 ActiveRecor
在我的 gem 中,我有以下模块: module EmeraldComponent def self.create(full_name) raise StandardError('Base
为什么 Ruby 被设计为仅通过 rescue 隐式处理 StandardError 异常?对于其他异常,为什么我们需要用 rescue 显式地放置它们? begin #codes here wh
sania@sania-Swift-SF314-52:~/library$ rake db:migrate == 20180407084831 书籍:迁移 ======================
我想获取控制台程序的错误输出以防它崩溃。但我希望标准输出显示在控制台窗口中。但是,如果我重定向标准错误,则不会向控制台窗口输出任何内容。 Dim p As New Process p.StartInf
当我尝试以编程方式检测我的 PC 上的 java 版本时,我遇到了非常奇怪的行为。我正在使用以下 C# 代码: ProcessStartInfo procStartInfo = new Process
我正在尝试使用自签名 SSL 证书通过 HTTPS 运行 Rails 开发服务器。但是当我使用以下命令启动 Rails 服务器时: rails s -b "ssl://0.0.0.0:8080?key
在 ruby 中, begin # ... rescue # ... end 不会捕获不是 StandardError 子类的异常。在 C 中, rb_rescue(x, Qnil, y, Q
我是一名优秀的程序员,十分优秀!