文章目录
- 1.else
- 2.finally
- 3.raise
1.else
- else子句是try except语句中的一个可选项。
如果try子句执行时没有发生异常,则在try子句执行结束后会执行else子句;
否则,如果发生异常,则else子句不会执行 - eg:
for i in range(3):#循环3次
try:
num=int(input('请输入一个数字:'))
print(10/num)
except ValueError:
print('值错误!')
except:
print('其它异常')
else
print('else子句被执行')
执行结果如下:
请输入一个数字:abc
值错误!
请输入一个数字:0
其他异常!
请输入一个数字:10
1.0
else子句被执行!
2.finally
- finally子句是try except语句中的另一个可选项。
无论try子句执行时是否发生异常,finally子句都会被执行。 - eg:
for i in range(3):#循环3次
try:
num=int(input('请输入一个数字:'))
print(10/num)
except ValueError:
print('值错误!')
except:
print('其它异常')
finally:
print('finally子句被执行')
执行结果如下:
请输入一个数字:abc
值错误!
finally子句被执行!
请输入一个数字:0
其他异常!
finally子句被执行!
请输入一个数字:10
1.0
finally子句被执行!
3.raise
- 除了系统遇到错误产生异常外,我们也可以使用raise产生异常。
- eg:
for i in range(2):#让i从0变成1
try:
num=int(input('请输入一个数字:'))
if num==0:
raise ValueError('输入数字不能为0!')
print(10/num)
except ValueError as e:#执行ValueError,会直接跳转到这里,将捕获的异常,实例化对象e,可以接收ValueError的参数
print('值错误:', e)
执行结果如下:
请输入一个数字:0
值错误: 输入数字不能为0!#内部会有str方法,会转成对应的字符串
请输入一个数字:10
1.0