1 异常的捕获
1.1 基础写法
"""
基本语法:
try:
可能发生错误的代码
except:
如果出现异常,将执行的代码
"""
try:
fr = open("D:/abc.txt", "r", encoding="utf-8")
except:
print("出现异常了,文件未找到!将以w模式写入")
fr = open("txt/abc.txt", "w", encoding="utf-8")
fr.write("我是出现异常时的文件")
1.2 捕获指定的异常
try:
1/0
except ZeroDivisionError as e:
print(e)
文章来源地址https://www.toymoban.com/news/detail-802710.html
1.3 捕获多个异常
"""
捕获多个异常:
语法格式:
try:
print(1/0)
except (ZeroDivisionError,NameError) as e: 通过元组的形式存放多个异常类型
print(e)
"""
try:
print(1/0)
except (ZeroDivisionError, NameError) as e:
print(e)
1.4 捕获所有异常
"""
捕获所有异常:
方式一:
基本语法:
try:
可能发生错误的代码
except:
如果出现异常,将执行的代码
方式二: 略
语法格式:
try:
print(1/0)
except Exception as e:
print(e)
"""
try:
print(1 / 0)
except Exception as e:
print(e)
1.5 异常else
"""
异常else:
当没有异常发生时,执行else中的代码 (可选的)
"""
try:
print(1)
except Exception as e:
print(e)
else:
print("没有异常发生!")
1.6 异常finally
"""
异常finally:
无论是否发生异常,都会执行finally中的代码 (可选的)
"""
try:
fr = open("txt/abc.txt", "r", encoding="utf-8")
print(fr.readline())
except Exception as e:
print(e)
else:
print("没有异常发生!")
finally:
fr.close()
2 异常的传递性
"""
异常具有传递性
例:当函数func1中抛出异常时,并且没有捕获处理这个异常的时候,
异常会传递到函数func2中,如果func2中也没有捕获处理这个异常,
那么异常会继续传递到main函数中,main函数就会捕获这个异常,这就是异常的传递性
注意:当所有函数都没有捕获异常的时候,程序就会报错!
"""
当在主函数中没有捕获处理异常时,会报异常错误
处理后
def func1():
print("func1开始执行")
num = 1/0
print("func1执行完毕")
def func2():
print("func2开始执行")
func1()
print("func2执行完毕")
def main():
print("main开始执行")
try:
func2()
except Exception as e:
print(e)
print("main执行完毕")
main()
文章来源:https://www.toymoban.com/news/detail-802710.html
到了这里,关于Python基础知识:整理10 异常相关知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!