Ruby的异常处理

Posted aWolfMan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ruby的异常处理相关的知识,希望对你有一定的参考价值。

Ruby的异常处理

如果异常处理范围是整个方法体,可以省略begin和end,直接写rescure和ensure部分的程序,不过要写在最后,避免后面的方法体内容被跳过。

def foo
    方法体
rescure => ex
    异常处理
ensure
    后处理
end

范例:


begin
input = File.open("liuyang.txt")
input.each do |line|
printf("%s,%d", line, line.size)
end
input.close
a =1
printf("\n%d\n", a)
rescue => ex
puts "**************"
puts ex.message #message : 异常信息
puts ex.backtrace #backtrace / [email protected] : 异常的位置信息
sleep(3)
retry #使用retry后,begin一下的处理会再重新做一遍
ensure
puts "no matter what happened , execute" #不管是否发生异常,这需要执行
end
 

 

以上是关于Ruby的异常处理的主要内容,如果未能解决你的问题,请参考以下文章

处理 Ruby 线程中引发的异常

为啥在 Ruby 异常处理期间使用“确保”? [复制]

Ruby 异常

雷林鹏分享:Ruby 异常

Ruby异常处理的基础

ruby 我感兴趣的库中的代码片段