1.Ruby异常处理格式
begin
可能异常代码
rescue=> exception
发生异常时执行语句
ensure
一定会执行的语句(类似于java的finally)
end
2.异常信息
将异常信息保存到exception对象中,rescue => exception
exception对象等价于$!
exception.class:异常种类
exception.message:异常信息
exception.backtrace:异常发生的位置 , 等价于$@
begin
10/0
rescue => ex
puts "exception"
ensure
puts "ensure"
end
p "ex.class: #{ex.class}"
p "ex.message: #{ex.message}"
p "ex.backtrace : #{ex.backtrace}"
rescue
retry
end
retry关键字可以将begin中的操作再执行一次
4.rescue可以有多个,类似于java中catch可以有多个来对不同的异常进行捕获
begin
***
rescue Exception,Exception2 => 变量
***
rescue Exception3 => 变量
***
rescue
***
end
5.主动抛出异常
raise :抛出最后一次发生的异常
raise message: 抛出RuntimeError ,并将message设置进去
raise 异常类:抛出指定异常类
raise 异常类,message:抛出指定异常类,设置message