国内优秀网站设计师,58同城遵义,珠海市建设工程信息网,免费教育网站大全 建站一、什么是异常
当检测到一个错误时#xff0c;Python解释器就无法继续执行了#xff0c;反而出现了一些错误的提示#xff0c;这就是所谓的“异常”#xff0c;也就是bug
二、异常的捕获方法
当我们的程序遇到bug#xff0c;那么就下来有两种情况
①整个程序因为一个…一、什么是异常
当检测到一个错误时Python解释器就无法继续执行了反而出现了一些错误的提示这就是所谓的“异常”也就是bug
二、异常的捕获方法
当我们的程序遇到bug那么就下来有两种情况
①整个程序因为一个bug停止运行
②对bug进行提示整个程序继续运行
捕获异常的作用在于提前假设某处会出现异常做好提前准备当真的出现异常的时候可以有后续手段。
1、捕获常规异常
一基本语法 try: 可能发生错误的代码 except: 如果出现异常执行的代码 二快速入门
需求尝试以‘r’模式打开文件如果文件不存在则以‘w’方式打开 try: f open(python.txt, r, encoding utf-8) except: f open(python.txt, w, encoding utf-8) 2、捕获指定异常 try: print(1 / 0) except NameError as a: print(f出现变量名称异常:{a}) except ZeroDivisionError as b: print(f出现^异常:{b}) 3、捕获多个异常 try: # print(name) 1 / 0 except (NameError, ZeroDivisionError) as a: print(f捕获到的异常是:{a}) 4、捕获全部异常 # 两种一样的写法都可以捕获到全部异常 # 第一种方式 # try: # # except: # 第二种方式 try: # print(name) 1 / 0 except Exception as a: print(f出现异常了:{a}) 5、异常else/finally
这两个参数是可选的
else表示的是如果没有异常要执行的代码
name hello
try:print(name)
except Exception as a:print(f出现异常了且为{a}类型)# finally一般用在文件的相关操作中因为不管怎么最后都要关闭文件
finally:print(hello不管怎样我都会在的)三、异常具有传递性
1、怎么理解呢
当函数func01中发生异常并且没有捕获处理这个异常的时候异常会传递到函数func02中当func02也没有捕获处理这个异常的时候main函数会捕获这个异常这就是异常的传递
需要注意的是
当所有函数都没有捕获异常的时候程序就会报错 程序结果 2、代码示例
# 定义一个出现异常的函数
def func01():print(这是func01函数的起始)print(name)print(这是func01函数的结束)# 定义一个不会出现异常的函数
def func02():print(这是func02函数的起始)func01()num 1 / 0print(这是func02函数的结束)# 定义一个函数调用上面的函数
def main():print(main函数开始执行)try:func02()except Exception as a:print(f出现异常了并且异常为{a})finally:print(我一直都在)print(main函数执行完毕)if __name__ __main__:main()
程序执行结果 从程序的执行结果可以看出
①执行的是main函数
②进入函数func02
③进入函数func01
④由于函数func01中出现了错误导致并非正常退出函数而是中断函数
⑤执行finally
⑥输出最后一个print语句
四、总结
干货可能不多但是的确不难异常可以提高程序的健壮性还是可以在之后自己开发的程序中加入异常捕获的。