• 类之异常处理


    1.异常处理

    try:
        li = [5,12,9]
        print(li[5])
        int('ko')
    except IndexError as e:
        print('IndexError:',e)
    except ValueError as e:
        print('ValueError:',e)
    except Exception as e:
        print('Exception:',e)
    else:
        print('无异常')
    finally:
        print('......')
    '''
    1.以上代码的执行流程:
    (1)try中的代码一旦出现异常,就执行except代码块,try中剩下的代码就不执行了
    (2)若没异常,执行try以后,执行else代码;
    (3)不管有无异常,最后执行finally代码
    2.关于except代码块:
    (1)IndexError、ValueError、Exception是捕获异常的类,e是这些类的对象
    (2)IndexError/ValueError分别用来捕获索引错误/值错误;Exception是他们的父类,可以捕获所有错误
    (3)执行流程:子类先上,如果子类捕获不到,父类最后上
    (4)捕获到的错误类型,都会被他们的对象e拿到
    '''

    2.主动触发异常

    try:
        raise Exception('ko')    #此句会触发except
    except Exception as e:       #e会拿到括号里的内容'ko'
        print(e)

    3.自定义异常

    class OldboyError(Exception):
        def __init__(self,msg):
            self.message = msg
            print(5)
        def __str__(self):
            return self.message
    # obj = OldboyError('lpp')
    # print(obj)
    try:
        raise OldboyError('lll')
    except OldboyError as e:   #给OldboyError找了个对象e,触发了__init__方法;self接收了e,msg接收了111
        print(e)       #此句触发了__str__方法

    4.断言

    assert 1==1       #assert的条件满足,执行代码;不满足,报错
    print(59955)
  • 相关阅读:
    leetcode[68] Climbing Stairs
    leetcode[67] Plus One
    17_8_16 接口实例化的方法
    17_8_15 lambda 表达式
    17_8_14 回调函数
    17_8_11 Spring Jdbc+Dbcp
    17_8_10 eclipse 中复制网上代码 出现 报错 问题(0)
    17_8_10 PostgreSql Mac
    17_8_10 项目开发流程
    17_8_9 html 不常用的标签
  • 原文地址:https://www.cnblogs.com/Finance-IT-gao/p/10545947.html
Copyright © 2020-2023  润新知