Ruby 教程 之 Ruby 异常 6
Ruby 异常
异常和执行总是被联系在一起。如果您打开一个不存在的文件,且没有恰当地处理这种情况,那么您的程序则被认为是低质量的。
使用 ensure 语句
有时候,无论是否抛出异常,您需要保证一些处理在代码块结束时完成。例如,您可能在进入时打开了一个文件,当您退出块时,您需要确保关闭文件。
ensure 子句做的就是这个。ensure 放在最后一个 rescue 子句后,并包含一个块终止时总是执行的代码块。它与块是否正常退出、是否抛出并处理异常、是否因一个未捕获的异常而终止,这些都没关系,ensure 块始终都会运行。
语法
begin
.. 过程
.. 抛出异常
rescue
.. 处理错误
ensure
.. 最后确保执行
.. 这总是会执行
end
实例
begin
raise 'A test exception.'
rescue Exception => e
puts e.message
puts e.backtrace.inspect
ensure
puts "Ensuring execution"
end
以上实例运行输出结果为:
A test exception.
["main.rb:4"]
Ensuring execution