迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

在 Ruby 中使用 begin 和 rescue 处理异常

作者:迹忆客 最近更新:2023/03/21 浏览次数:

本文将讨论在 Ruby 中使用 beginrescue 处理异常。

Ruby 中异常处理的一般语法

在 Ruby 中,beginrescue 关键字通过将可能引发异常的代码包含在 begin-end 块中来处理异常。

begin
  # code that might raise an exception
rescue AnExceptionClass => a_variable
  # code that deals with some exception
rescue AnotherException => another_variable
  # code that deals with another exception
else
  # code that runs only if no exception was raised
ensure
  # code that always runs no matter what
end

在 Ruby 中使用 beginrescue 处理异常

下面的示例显示了 beginrescue 关键字。

示例代码:

def do_arithmetic(a, b)
    begin
        answer = (b + a) / (a * b)
        puts answer
    rescue ZeroDivisionError => e
        puts "Custom Error: #{e.message}"
    rescue TypeError => e
        puts "Custom Error: #{e.message}"
    ensure
        puts "Done."
    end
end

do_arithmetic(2, 2)
do_arithmetic(0, 2)
do_arithmetic("David", 2)

输出:

# first output
1
Done.

# second output
Custom Error: divided by 0
Done.

# third output
Custom Error: String can't be coerced into Integer
Done.

组合多个异常并在同一个 rescue 块中处理它们也是可能的。上面示例中的 ZeroDivisionError,TypeError 异常可以在下面一起运行。

def do_arithmetic(a, b)
    begin
        answer = (b + a) / (a * b)
        puts answer
    rescue ZeroDivisionError, TypeError => e
        puts "Custom Error: #{e.message}"
    ensure
        puts "Done."
    end
end

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

用 Ruby 解析 XML

发布时间:2023/03/21 浏览次数:112 分类:编程语言

本文展示了如何在 Ruby 中使用 gem nokogiri 解析 XML 文件。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便