Ruby 教程 之 Ruby 异常 9

简介: Ruby 异常

Ruby 教程 之 Ruby 异常 9

Ruby 异常

异常和执行总是被联系在一起。如果您打开一个不存在的文件,且没有恰当地处理这种情况,那么您的程序则被认为是低质量的。

类 Exception
Ruby 的标准类和模块抛出异常。所有的异常类组成一个层次,包括顶部的 Exception 类在内。下一层是七种不同的类型:

Interrupt
NoMemoryError
SignalException
ScriptError
StandardError
SystemExit
Fatal 是该层中另一种异常,但是 Ruby 解释器只在内部使用它。

ScriptError 和 StandardError 都有一些子类,但是在这里我们不需要了解这些细节。最重要的事情是创建我们自己的异常类,它们必须是类 Exception 或其子代的子类。

让我们看一个实例:

实例
class FileSaveError < StandardError
attr_reader :reason
def initialize(reason)
@reason = reason
end
end
现在,看下面的实例,将用到上面的异常:

实例
File.open(path, "w") do |file|
begin

# 写出数据 ...

rescue

# 发生错误
raise FileSaveError.new($!)

end
end
在这里,最重要的一行是 raise FileSaveError.new($!)。我们调用 raise 来示意异常已经发生,把它传给 FileSaveError 的一个新的实例,由于特定的异常引起数据写入失败。

目录
相关文章
|
6月前
|
Ruby
|
6月前
|
Ruby
|
6月前
|
JSON 数据格式 Ruby
|
6月前
|
调度 Ruby
|
6月前
|
存储 JSON 数据格式
|
6月前
|
Ruby
|
6月前
|
Ruby
|
6月前
|
人工智能 BI 计算机视觉
|
6月前
|
JSON Ubuntu Linux
|
6月前
|
调度 Ruby