美文网首页
Ruby语法(异常处理)

Ruby语法(异常处理)

作者: _西风凋碧树 | 来源:发表于2019-04-12 13:41 被阅读0次

    异常处理结构

    begin
      ... # 正常运行代码
    rescue Exception1
      ... # 处理Exception1类型的错误
    rescue Exception2
      ... # 处理Exception2类型的错误
    rescue => err
      ... # 处理其他错误
    ensure
      ... # 这里的代码在发生错误后总是会被执行,可以做一些清理工作
    end
    

    下面一个简单的示例,演示了捕获除数为零时发生的错误

    begin
      y = 10
        z = 0
      x = y / z
      puts x
    rescue ZeroDivisionError
      puts "除数为0"
    rescue => err
      puts err
    end
    

    抛出异常

    • raise: 简单抛出一个未处理的异常
    • raise"message":抛出一个描述为message的异常
    • raise ExceptionType: 抛出一个某种错误类型ExceptionType的异常
    • raise ExceptionType,"message" : 抛出一个某种错误类型ExceptionType的异常,并指定错误描述。

    恢复执行

    y = 10
    z = 0
    begin
        x = y / z
        puts x
      rescue ZeroDivisionError
        z = 1 
        retry
      rescue => err
        puts err
    end
    

    注意:使用retry很容易导致程序无限循环下去,使用时应该特别小心

    相关文章

      网友评论

          本文标题:Ruby语法(异常处理)

          本文链接:https://www.haomeiwen.com/subject/qhkcwqtx.html