Ruby异常处理详细解析

来源:爱站网时间:2018-09-29编辑:网友分享
今天小编给大家分享一篇Ruby异常处理的详细解析,感兴趣的朋友跟小编一起来了解一下吧!

  今天小编给大家分享一篇ruby.html" target="_blank">Ruby异常处理的详细解析,感兴趣的朋友跟小编一起来了解一下吧!

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

  如果异常发生,则程序停止。异常用于处理各种类型的错误,这些错误可能在程序执行期间发生,所以要采取适当的行动,而不至于让程序完全停止。

  Ruby 提供了一个完美的处理异常的机制。我们可以在 begin/end 块中附上可能抛出异常的代码,并使用 rescue 子句告诉 Ruby 完美要处理的异常类型。

  语法

  begin

  # -

  rescue OneTypeOfException

  # -

  rescue AnotherTypeOfException

  # -

  else

  # 其他异常

  ensure

  # 总是被执行

  end

  从 begin 到 rescue 中的一切是受保护的。如果代码块执行期间发生了异常,控制会传到 rescue 和 end 之间的块。

  对于 begin 块中的每个 rescue 子句,Ruby 把抛出的异常与每个参数进行轮流比较。如果 rescue 子句中命名的异常与当前抛出的异常类型相同,或者是该异常的父类,则匹配成功。

  如果异常不匹配所有指定的错误类型,我们可以在所有的 rescue 子句后使用一个 else 子句。

  实例

  #!/usr/bin/ruby

  begin

  file = open("/unexistant_file")

  if file

  puts "File opened successfully"

  end

  rescue

  file = STDIN

  end

  print file, "==", STDIN, "\n"

  这将产生以下结果。您可以看到,STDIN 取代了 file ,因为打开失败。

  #0xb7d16f84>0xb7d16f84>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

上一篇:Windows系统中ruby语言安装详细教程

下一篇:用Ruby处理文本的详细教程

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载