0
点赞
收藏
分享

微信扫一扫

(7-12)异常处理-else、finally和raise


文章目录

  • ​​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


举报

相关推荐

0 条评论