try…一个 except 结构
try…except 是最常见的异常处理结构,其结构如下:
try:
被监控的可能引发异常的语句块
except BaseException [as e]:
异常处理语句块
try 块包含着可能引发异常的代码,except 块则用来捕捉和处理发生的异常。执行的时候,如果 try 块中没有引发异常,则跳过 ecept 块继续执行try块、except块以外的后续代码;如果 try块中发生了异常,则跳过 try 块中的后续代码,跳到相应的 except 块中处理异常,异常处理完后,继续执行try块、except块以外的后续的代码。
【例1】遇到异常的执行顺序
# 测试简单的0不能作为除数的异常
try:
print('step1')
a = 3 / 0
print('step2')
except BaseException as e:
print('step3')
print(e)
print('step4')
运行结果:
执行顺序:
程序执行到引发异常的语句时,直接掉到 except 异常处理语句块进行处理;处理完毕后,继续执行下面的程序。
【例2】未遇到异常时的执行顺序
# 测试简单的0不能作为除数的异常
try:
print('step1')
a = 3 / 1
print('step2')
except BaseException as e:
print('step3')
print(e)
print('step4')
运行结果:
执行顺序:
try 语句块没有发生异常,则正常执行完 try 块后跳过 except 异常处理语句块,继续往下执行。
应用示例
【例3】循环输入数字,如果不是数字则处理异常;直到输入 88,则结束循环。
while True:
try:
x = int(input('请输入一个整数:'))
print('您输入的整数是:{}'.format(x))
if x == 88:
print('退出程序。')
break
except:
print('异常,输入的不是一个整数。')
运行结果: