python3异常处理和断言assert使用小结

异常处理

1
2
3
4
5
6
7
8
9
10
11
try:
# 代码逻辑,只要其中任意一行报错都会被捕捉
i = int('aaa')
print(i)
except Exception as e: # 如果出错执行
# 捕捉错误
print(e) # invalid literal for int() with base 10: 'aaa'
else:
print('no Error') # 当没有错误的时候才执行
finally: # 不管出不出错一定会执行
print('over')

这里的Exception是一个包容所有错误的类,当然也可以写一些分类

1
2
3
4
5
6
7
try:
s = 'aaa'
print(s[5])
except IndexError as e:
print(e) # string index out of range
except IOError as e:
print(e)

另外一种写法

1
2
3
4
5
try:
s = aaa
print(s[5])
except (IndexError, NameError) as e:
print(e) # name 'aaa' is not defined

主动触发异常

1
2
3
4
try:
raise Exception('自首')
except Exception as e:
print(e) # 自首

自定义主动触发错误

1
2
3
4
5
6
7
8
9
10
class MyError(Exception):
def __init__(self, msg):
self.message = msg

def __str__(self):
return self.message
try:
raise MyError('我错了')
except MyError as e:
print(e) # 我错了

assert 断言

1
2
3
4
5
6
print(123)
assert 1 == 1 # assert 条件,满足就执行下去,不满足报错
print(456)
print(123)
assert False # AssertionError
print(456)

作者:Tyran_U
来源:CSDN
原文:https://blog.csdn.net/tyrantu1989/article/details/78521298

文章目录
  1. 1. 异常处理
  2. 2. 主动触发异常
  3. 3. 自定义主动触发错误
  4. 4. assert 断言