美文网首页
python—raise异常捕获

python—raise异常捕获

作者: 小二哥很二 | 来源:发表于2019-10-10 14:31 被阅读0次

    1、raise的作用:显式的抛出异常。当出现异常时,raise后面的语句就不会执行

    def test(count):
        if count == 100:
            raise ValueError("I am error")
        print(count)
    test(100)
    
    运行结果:
    >>
    Traceback (most recent call last):
      File "D:/PycharmProjects/wangyongha/爬虫/pachong.py", line 718, in <module>
        test(100)
      File "D:/PycharmProjects/wangyongha/爬虫/pachong.py", line 715, in printCount
        raise ValueError("I am error")
    ValueError: I am error
    <<
    ※如果test()传参不等于100,那么就直接执行print(count)语句
    

    2、raise后面可以是一个class、也可以是一个对象

    def test(count):
        if count == 100:
            raise ValueError("I am error")       #这是实例对象
            #raise ValueError                    #这是class
        print(count)
    
    try:
        test(100)
    except ValueError as e:  #e为ValueError对象
        print(e)
    或者
    # try:
    #     test(100)
    # except ValueError:
    #     print('我捕获到一个valueError错误')
    
    运行结果:
    >>
    I am error
    <<
    

    3、try...except...else

    res = "lily"
    
    try:
        # int(res)
        res[12]
    # 捕获异常类型会从上往下执行,如果都没有对应的类型错误,才执行到“Exception”
    except ValueError as e:
        print("ValueError", e)
    except IndexError as e:
        print("IndexError", e)
    except Exception as e:
        print("Exception", e)
    # 如果没有异常,则执行else操作
    else:
        print('I love U lily')
    
    # 一般执行清理工作findlly
    finally:
        print('无论是否引发异常,都执行findlly代码块')
    
    结果:
    IndexError string index out of range
    无论是否引发异常,都执行findlly代码块
    

    相关文章

      网友评论

          本文标题:python—raise异常捕获

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