类之异常处理

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)

猜你喜欢

转载自www.cnblogs.com/Finance-IT-gao/p/10545947.html