• ruby异常处理


    begin
        num = 0
        de = 0 
        value = num/de
    rescue ZeroDivisionError => ex
        puts "error,divede zero"   # error,divede zero
        puts ex                           # divided by 0
        puts ex.class                   # ZeroDivisionError
        puts ex.class.superclass  # StandardError
        puts ex.class.superclass.superclass  # Exception
        puts ex.class.superclass.superclass.superclass  # Object
    ensure
        puts "over"                      # over
    end
    

    在异常产生后,如果相应的rescue语句被匹配到,那么这个异常对象会被复制到ex中,而ensure后的代码永远都会被执行到。
    ruby里,异常类的基类是Exception。

    recuse不加参数默认是匹配StandardError类型的异常。

    当抛出一个异常时,可以使用Ruby内置的异常类,也可以自定义自己的异常类。如果使用自定义的异常类,那么这个异常类应该是StandardError类直接或间接的子类。如果不这么做,那么默认情况下,这个异常不能正确地被捕捉。

  • 相关阅读:
    10.7
    10.5
    周六
    周五
    周四
    周三
    四则运算
    zabbix——yum安装
    Stirling's Formula
    CONTRASTIVE REPRESENTATION DISTILLATION
  • 原文地址:https://www.cnblogs.com/leaf526/p/3496276.html
Copyright © 2020-2023  润新知