我在rails中使用了“rubyoverflow”宝石:
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中的错误,而在于异常处理。我只进入控制台一行:
puts "=== 1 ==="但不是线条
puts "=== 2 ==="
puts "=== 3 ==="为什么?
如果行,我如何恢复程序的运行?
qt = Questions.retrieve_by_tag(tag).questions失败了?
发布于 2011-04-01 06:03:11
默认情况下,rescue会诱捕StandardError和任何继承自它的东西。
来自医生们
默认情况下,救援只拦截StandardError及其后代..。
所提出的例外情况可能不是这样,所以援救不能处理它。
通常,您可以找出从docs到引发它的方法使用什么作为救援参数,但如果不是,则可以使用
rescue Exception => e
print e.to_s
end若要查看异常情况,请将Exception替换为该值。
更多的信息在互联网上,但是这里有一段打印异常列表的代码。
https://stackoverflow.com/questions/5509585
复制相似问题