首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >异常处理

异常处理
EN

Stack Overflow用户
提问于 2011-04-01 05:42:20
回答 1查看 920关注 0票数 1

我在rails中使用了“rubyoverflow”宝石:

代码语言:javascript
复制
begin
  puts "=== 1 ==="
  qt = Questions.retrieve_by_tag(tag).questions
  puts "=== 2 ==="
rescue
  puts "=== 3 ==="
end

但有时我会在控制台上看到错误:

无法解析第843行第4列的YAML C:/ruby 192/lib/ruby/1.9.1/sign.rb:148:in parse' C:/Ruby192/lib/ruby/1.9.1/psych.rb:148:inparse_stream‘.rubyoverflow (1.0.1) lib/rubyoverflow. in :86:inrequest' ... C:/Ruby192/lib/ruby/1.9.1/webrick/server.rb:183:in块in start_thread‘

但问题不在于gem中的错误,而在于异常处理。我只进入控制台一行:

代码语言:javascript
复制
  puts "=== 1 ==="

但不是线条

代码语言:javascript
复制
  puts "=== 2 ==="
  puts "=== 3 ==="

为什么?

如果行,我如何恢复程序的运行?

代码语言:javascript
复制
  qt = Questions.retrieve_by_tag(tag).questions

失败了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-01 06:03:11

默认情况下,rescue会诱捕StandardError和任何继承自它的东西。

来自医生们

默认情况下,救援只拦截StandardError及其后代..。

所提出的例外情况可能不是这样,所以援救不能处理它。

通常,您可以找出从docs到引发它的方法使用什么作为救援参数,但如果不是,则可以使用

代码语言:javascript
复制
rescue Exception => e
  print e.to_s
end

若要查看异常情况,请将Exception替换为该值。

更多的信息在互联网上,但是这里有一段打印异常列表的代码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5509585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档