ruby中的异常处理

ruby和Java一样都有异常处理的关键字,java是try/catch,ruby的是rescue,用法如下:

异常捕获处理关键字后加异常类型,可对不同类型的异常进行处理。
begin
    #可能产生异常的操作
rescue ErrorType1
    #捕获ErrorType1异常
rescue ErrorType2
    #捕获ErrorType2异常
end
异常捕获处理关键字后不加任何关键字,会捕获StdError的所有异常,方便使用。
begin
    #可能产生异常的操作
rescue
    #捕获StdError所有异常
end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ruby 异常处理的语法结构为 `begin..rescue..end` 或者 `begin..rescue..else..ensure..end`。 在 `begin` 后面的代码块,我们需要执行可能会抛出异常的代码。如果代码块异常抛出,那么就会跳转到 `rescue` 后面的代码块,进行异常处理。如果没有异常抛出,那么就会跳过 `rescue` 块,执行 `else` 块的代码,最后执行 `ensure` 块的代码。 下面是一个 `begin..rescue..end` 的例子: ```ruby begin x = 1 / 0 rescue ZeroDivisionError => e puts "Error: #{e.message}" end ``` 上述代码,我们执行了一个除以零的操作,会抛出 `ZeroDivisionError` 异常。在 `rescue` 块,我们可以使用 `=>` 符号将异常对象赋值给一个变量,便于对异常进行处理。在这个例子,我们将异常对象赋值给了变量 `e`,并打印出了异常信息。 下面是一个 `begin..rescue..else..ensure..end` 的例子: ```ruby begin file = File.open('data.txt') data = file.read rescue Errno::ENOENT => e puts "Error: #{e.message}" else puts "Data: #{data}" ensure file.close if file end ``` 上述代码,我们尝试打开一个名为 `data.txt` 的文件,并读取其的数据。如果文件不存在,就会抛出 `Errno::ENOENT` 异常,在 `rescue` 块进行异常处理。如果文件存在,就会执行 `else` 块的代码,并输出文件的数据。最后,无论有没有异常抛出,都会执行 `ensure` 块的代码,关闭文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值