1. 异常的概念
2. 捕获异常
num = int(input('请输入整数:'))
若我不输入一个整数,就会报错。
try:
# 不能确定正确执行的代码
num = int(input('请输入整数:'))
except:
# 代码错误,执行语句
print('请输入整数!')
print('=' * 10)
num = int(input('请输入一个整数:'))
result = 8 / num
print(result)
错误类型为ZeroDivisionError ,同理我们能够获得很多种错误类型。比如我们输入 a ,会提示错误类型 ValueError 。
try:
num = int(input('请输入一个整数:'))
result = 8 / num
print(result)
except ZeroDivisionError:
print('除 0 错误 。')
except ValueError:
print('请输入正确的整数。')
try:
num = int(input('请输入一个整数:'))
result = 8 / num
print(result)
except ZeroDivisionError:
print('除 0 错误 。')
except Exception as result:
print('未知错误:%s' % result)
else:
print('没有异常才会执行的代码')
finally:
print('无论是否异常,都会执行的代码。')
3. 异常的传递
利用异常的传递性,在主程序中捕获异常。
4. 自定义异常
def input_password():
# 提示用户输入密码
pwd = input('请输入密码:')
# 判断密码长度 》= 8 ,返回用户输入的密码
if len(pwd) >= 8:
return pwd
# 如果 < 8 主动抛出异常
ex = Exception('密码长度不够。')
raise ex
try:
input_password()
except Exception as result:
print(result)