Ruby 教程 之 Ruby 异常 8

简介: Ruby 异常

Ruby 教程 之 Ruby 异常 8

Ruby 异常

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

Catch 和 Throw

raise 和 rescue 的异常机制能在发生错误时放弃执行,有时候需要在正常处理时跳出一些深层嵌套的结构。此时 catch 和 throw 就派上用场了。

catch 定义了一个使用给定的名称(可以是 Symbol 或 String)作为标签的块。块会正常执行直到遇到一个 throw。

语法
throw :lablename

.. 这不会被执行

catch :lablename do

.. 在遇到一个 throw 后匹配将被执行的 catch

end

throw :lablename condition

.. 这不会被执行

catch :lablename do

.. 在遇到一个 throw 后匹配将被执行的 catch

end
实例
下面的实例中,如果用户键入 '!' 回应任何提示,使用一个 throw 终止与用户的交互。

实例
def promptAndGet(prompt)
print prompt
res = readline.chomp
throw :quitRequested if res == "!"
return res
end

catch :quitRequested do
name = promptAndGet("Name: ")
age = promptAndGet("Age: ")
sex = promptAndGet("Sex: ")

..

处理信息

end
promptAndGet("Name:")
上面的程序需要人工交互,您可以在您的计算机上进行尝试。以上实例运行输出结果为:

Name: Ruby on Rails
Age: 3
Sex: !
Name:Just Ruby

目录
相关文章
|
6月前
|
JSON 数据格式 Ruby
|
6月前
|
调度 Ruby
|
6月前
|
存储 JSON 数据格式
|
6月前
|
Ruby
|
6月前
|
人工智能 BI 计算机视觉
|
6月前
|
JSON Ubuntu Linux
|
6月前
|
调度 Ruby
|
6月前
|
Ruby
|
6月前
|
安全 Ruby
|
6月前
|
数据采集 Web App开发 数据处理
Ruby网络爬虫教程:从入门到精通下载图片
Ruby网络爬虫教程:从入门到精通下载图片