- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我需要立即捕获线程中的异常并停止所有线程,因此我在我的脚本中使用了 abort_on_exception。不幸的是,这意味着不会向父线程引发异常 - 也许这是因为异常最终发生在全局范围内??
无论如何,这是一个显示问题的示例:
Thread.abort_on_exception = true
begin
t = Thread.new {
puts "Start thread"
raise saveMe
puts "Never here.."
}
t.join
rescue => e
puts "RESCUE: #{e}"
ensure
puts "ENSURE"
end
如何挽救使用 abort_on_exception 时线程中引发的异常?
这是一个新的例子,它展示了更令人难以置信的东西。该线程能够终止开始 block 内的执行,但它不会引发任何异常??
Thread.abort_on_exception = true
begin
t = Thread.new { raise saveMe }
sleep 1
puts "This doesn't execute"
rescue => e
puts "This also doesn't execute"
ensure
puts "But this does??"
end
最佳答案
啊 - 我想通了。
显然,abort_on_exception 发送一个中止。线程无关紧要,我们的救援也不会看到基本中止:
begin
abort
puts "This doesn't execute"
rescue => e
puts "This also doesn't execute"
ensure
puts "But this does?? #{$!}"
end
解决方案是使用也捕获中止的“救援异常”。
begin
abort
puts "This doesn't execute"
rescue Exception => e
puts "Now we're executed!"
end
关于ruby 无法从 Thread.abort_on_exception 中拯救或看到中止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13203268/
双系统grub意外消失怎么办? 不用重装系统、不用去维修店、不会丢数据,教你一招,完美恢复grub! 。 背景 我的电脑是windows和linux双系统,启动项使用的grub。某天
我正在尝试构建一个表,该表将充当第三方服务的批量同步队列。 下面的方法应该不言自明;但需要明确的是,它的目的是向 delayed_syncs 表中添加一个具有 status: :queued 的新可更
我需要在特殊情况下捕获 NameError。但我不想捕获 NameError 的所有子类。有办法实现吗? # This shall be catched begin String::NotExis
我正在使用以下方法发送电子邮件: class Communicate msg end end bcc 包含 4 或 5 个电子邮件地址。 在我的测试中,我注意到两件事: 即使其中一封电子邮件不是
我想知道如何在使用 lib Linear 的 Java API 时挽救所有预测结果。 由于有详细记录,人们可以使用以下代码来挽救预测的准确性: Feature[] instance = new Fea
在我的 Rails 3 应用程序中,我通过以下方式获取 path_info: Rails.application.routes.recognize_path(url, { :method => req
当我将 IO::popen 与不存在的命令一起使用时,我在屏幕上打印了一条错误消息: irb> IO.popen "fakefake" #=> # irb> (irb):1: command
例如,如果我尝试删除一个不存在的表,我将收到以下错误: "# ex if ex.cause.is_a?(PG::UndefinedTable) # do something else
我负责使用 Cucumber 测试非 Rails 网络应用程序。我已经启动并运行了基本测试,I.E.我可以做类似的事情 Then /^the page should have a header$/ d
我有以下表演 Action : def show @name = params[:id] rescue ActiveRecord::RecordNotFound redirect_to :
我是一名优秀的程序员,十分优秀!