捕获全部异常
语法:
try:
可能发生的错误代码
except:
如果出现异常执行的代码
例子:
python
try:
open("test2.txt", "r", encoding="UTF-8")
except:
print("出现异常,文件不存在,换个模式打开")
open("test2.txt", "w", encoding="UTF-8")
捕获指定异常
语法:
try:
可能发生的错误代码
except 异常名字 as e:
如果出现异常执行的代码
例子:
python
try:
print(name)
# 1 / 0
except NameError as e:
print("捕获指定异常")
捕获多个指定异常
语法:
try:
可能发生的错误代码
except (异常名字1,异常名字2) as e:
如果出现异常执行的代码
例子:
python
try:
1 / 0
except (NameError, ZeroDivisionError) as e:
print("捕获多个指定异常")
捕获全部异常(使用较多)
语法:
try:
可能发生的错误代码
except Exception as e:
如果出现异常执行的代码
例子:
python
try:
1 / 0
except Exception as e:
print("捕获所有异常")
异常else --- 没有异常执行的代码
语法:
try:
可能发生的错误代码
except Exception as e:
如果出现异常执行的代码
else:
没有异常执行的代码
例子:
python
try:
open("test.txt", "r", encoding="UTF-8")
except Exception as e:
print("出现异常了")
else:
print("没有异常")
异常的finally --- 无论是否有异常都要执行的代码
语法:
try:
可能发生的错误代码
except Exception as e:
如果出现异常执行的代码
finally:
无论是否有异常都要执行的代码
例子:
python
try:
f = open("test.txt", "r", encoding="UTF-8")
except Exception as e:
print("出现异常了")
f = open("test.txt", "w", encoding="UTF-8")
else:
print("没有异常")
finally:
f.close()
异常具有传递性
例子:
python
def func01():
print("1-1")
num = 1/0
print("1-2")
def func02():
print("2-1")
func01()
print("2-2")
def main():
print("3-1")
try:
func02()
except Exception as e:
print(e)
print("3-2")
main()