异常处理-自定义异常和主动抛出异常:团队合作中一些简单明快开发的时候需要给使用明快的开发人员以错误或警告提示。
一、主动抛出异常
def test(m, n):
if n == 0:
# print('除数不能为零!')
raise ZeroDivisionError('除数不能为零!')
else:
print(m/n)
print('你走到这里了')
# 开发人员一般会使用这样的代码,好处在于抛出异常后,下面的代码不会被执行,如果使用print()后面代码依然执行
# test(10, 0) # ZeroDivisionError: 除数不能为零!
# 如果开发人员想容错处理也可以使用下面的代码,一举两得
try:
test(10, 0)
except ZeroDivisionError as err:
print('wwwww', err)
二、自定义异常类
class ZeroErr(Exception): # 异常都要直接或间接是继承自BaseException,这里通过Exception间接继承
def __init__(self, msg):
self.msg = msg
pass
def test(m, n):
if n == 0:
# print('除数不能为零!')
raise ZeroErr('除数不能为零!')
else:
print(m/n)
try:
test(10, 0)
except ZeroErr as err:
print('wwwww', err)