我是靠谱客的博主 魁梧奇迹,最近开发中收集的这篇文章主要介绍Python异常处理语句 try...except...else...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前面已经讲解了try...except...结构(https://blog.csdn.net/weixin_50486192/article/details/123095521),现在在try...except...结构的基础上,再添加一个else代码块,形成try...except...else...结构,即

try:
    可能产生异常的代码块1
except [(Error1, Error2, ...) [as e]]:
    处理异常的代码块2
except [(Error3, Error4, ...) [as e]]:
    处理异常的代码块3
except [(Exception) [as e]]:
    处理其它异常的代码块n
else:
    代码块1无异常时执行的代码块

当try中的代码块1出现异常,系统就会自动生成相应的异常类型,然后根据异常类型Error进入相应的except分支进行异常处理;如果try代码块没有出现任何异常时,就会直接跳到else的代码块执行。
所以,else的代码块,只有当try的代码块没有出现异常时才会显现出来,否则else中的代码块不会执行。

例1:try中没有出现异常

try:
a = 10
b = 2
c = a / b
except (ValueError, TypeError) as e:
# 该except分支可以同时捕获并处理 ValueError, TypeError这2种类型的异常
print("ValueError or TypeError:", e)
except (ZeroDivisionError) as e:
# 该except分支可以捕获并处理 ZeroDivisionError 这种类型的异常
print('ZeroDivisionError:', e)
except(Exception) as e:
# 未指定具体要捕获的异常类型, 意味着可捕获所有类型的异常,
print("other exceptions:", e)
else:
print("result:", c)
# try 中没有出现异常,会执行
print("continue...")

执行结果:
result: 5.0
continue...

例2:try中出现异常

try:
a = 10
b = 0
c = a / b
# b作为被除数不能为0,将出现 ZeroDivisionError 的异常
except (ValueError, TypeError) as e:
# 该except分支可以同时捕获并处理 ValueError, TypeError这2种类型的异常
print("ValueError or TypeError:", e)
except (ZeroDivisionError) as e:
# 该except分支可以捕获并处理 ZeroDivisionError 这种类型的异常
print('ZeroDivisionError:', e)
except(Exception) as e:
# 未指定具体要捕获的异常类型, 意味着可捕获所有类型的异常,
print("other exceptions:", e)
else:
print("result:", c)
# try 中出现了异常,不会执行
print("continue...")

执行结果:
ZeroDivisionError: division by zero
continue...

注意:
try中一般不使用return语句,如果try中含有return语句,可能会阻碍到except或else的执行。
例:

def test():
try:
print(1)
return 1
# raise ValueError()
# 加上这一句后会阻碍except的执行
except:
print(2)
return 2
else:
print(3)
return 3
print('continue...')
print(test())

执行结果:
continue...
1
1

从执行结果可以看出,尽管try中没有出现异常,但是含有return语句,所以在执行else代码块之前就已经返回了,因而执行不到else部分。
 

最后

以上就是魁梧奇迹为你收集整理的Python异常处理语句 try...except...else...的全部内容,希望文章能够帮你解决Python异常处理语句 try...except...else...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部