python异常处理机制
python有五种异常处理机制,分别是
1、默认异常处理器。
如果我们没有对异常进行任何预防,那么程序在执行过程中发生异常就会中断程序,调用python默认的异常处理器,并在终端输出异常信息,如图所示,第二行代码发生异常,第三行代码不会被执行

2、try....except....
程序执行到第2句时发现try语句,进入try语句块执行,发生异常,回到try语句层,寻找后面是否有except语句,找到except语句后,会调用自定义的异常处理器,except将异常处理完毕后,程序继续往下执行,即执行except下的语句,try语句结束后,继续向下执行print(end...)语句

3、try....except....finally
finally语句表示无论异常是否发生,finally中的语句都要执行。


4、try...finally....
finally语句表示,无论异常发生与否,finally中的语句都要执行,但是由于没有except处理器,finally执行完毕后程序便中断,这种情况下,最后一个
print语句不会执行,倒数第二个(finally里的print)语句会执行。如果try语句中没有异常,那么最后一个print会执行

5、assert
assert语句先判断assert后面紧跟的语句是True还是False,如果是True则继续往下执行语句,如果是False则中断程序,调用默认的异常处理器,
同时输出assert False语句逗号后面的提示信息。程序中断提示error,后面的语句不执行。

5、with...as
我们平时在使用类似文件的流对象时,使用完毕后要调用close方法关闭,很麻烦,这里with...as语句提供了一个非常方便的替代方法,open打开文件后将返回的文件流对象赋值给f,然后在with语句块中使用,with语句块完毕之后,会自动关闭文件
如果with语句发生异常,会调用默认的异常处理器,文件也会正常关闭,但后面的print语句不执行

python异常处理机制的更多相关文章
- Python基础入门(7)- Python异常处理机制
1.初识异常 1.1.什么是异常与异常处理 异常就是错误 异常会导致程序崩溃并停止运行 能监控并捕获异常,将异常部位的程序进行修理使得程序继续正常运行 1.2.异常的语法 1 # coding:utf ...
- Python异常处理机制、调试、测试
类似于Java的try..catch..finally Java的为try_except_finally try: print('try...') r = / print('result:', r) ...
- Python异常处理总结
一.何谓异常处理 在我们调试程序时,经常不可避免地出现意料之外的情况,导致程序不得不停止运行,然后提示大堆提示信息,大多是这种情况都是由异常引起的.异常的出现一方面是因为写代码时粗心导致的语法错误,这 ...
- Python异常处理回顾与总结
1 引言 在我们调试程序时,经常不可避免地出现意料之外的情况,导致程序不得不停止运行,然后提示大堆提示信息,大多是这种情况都是由异常引起的.异常的出现一方面是因为写代码时粗心导致的语法错误,这种错误在 ...
- Python笔记(四):异常处理机制与 open()
(一) 异常处理机制概述 就像日常生活中会遇到各种意外情况一样(例如:你可能考虑过如果中了500w该怎么做),代码运行过程中也会遇到这种意外情况,python提供了这么一种机制,处理意外情况(就像如 ...
- Python 异常处理与反射机制
Python 的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承.Py ...
- python的异常处理机制
异常机制己经成为衡量一门编程语言是否成熟的标准之一,使用异常处理机制的 Python 程序有更好的容错性,更加健壮. 对于计算机程序而言,情况就更复杂了一一没有人能保证自己写的程序永远不会出辛苦!就算 ...
- python异常处理(基础)
之前在学习python的时候有整理过python异常处理的文章,不够简单也不够完整,所以决定再整理一篇,算做补充. http://www.cnblogs.com/fnng/archive/2013/0 ...
- python异常处理try,except,else,finally,raise
先看下else的使用: try: ... exception: ... else: ... 只有在try中没有发生任何异常,所有代码完全成功的情况下才会转入else 再看下finally: final ...
随机推荐
- log4j:WARN No appenders could be found for logger 解决方案
我们在使用Log4j的时候,总是出现: log4j:WARN No appenders could be found for logger (org.apache.ibatis.logging.Log ...
- word之个人设置
1.视图设置.五种视图中一般都是用“页面视图”.标尺和导航窗口都需要显示出来,方便操作,显示比例就用最真实的100%比例. 2.设置文件自动保存时间间隔和位置 3.word段落设置,不允许西文单词中间 ...
- 分治法——快速排序(quicksort)
先上代码 #include <iostream> using namespace std; int partition(int a[],int low, int high) { int p ...
- Java IO--NIO(一)
一.基本概念描述 1.1 I/O简介 I/O即输入输出,是计算机与外界世界的一个接口.IO操作的实际主题是操作系统.在java编程中,一般使用流的方式来处理IO,所有的IO都被视作是单个字节的移动,通 ...
- [转][访谈] Olivier Grisel谈scikit-learn和机器学习技术的未来
原文:http://www.csdn.net/article/2015-10-11/2825882 几周前,我们的Florian Douetteau (FD)对Olivier Grisel(OG)进行 ...
- 在vue项目中引入jquery
在vue项目中引入jquerycnpm install jquery --save在main.js中引入,加入下面这行代码:import 'jquery'注:有些项目是按需加载的,在main.js里面 ...
- MySQL中SQL语句2
上一片介绍了一些基本的SQL的增删改查,这一片会介绍一些进阶的SQL语句使用. MySQL中的视图 视图是什么?当我们总是查询几张表的某个字段时,可以创建一张虚拟表,把这几个字段写入这个虚拟的表,这样 ...
- JavaScript 序列化、转义
JavaScript 序列化.转义 序列化 // 将对象转换为字符串 JSON.stringify() // 将字符串转换为对象类型 JSON.parse() 转义 // URl中未转义的字符 de ...
- 谷歌技术"三宝"之GFS
题记:初学分布式文件系统,写篇博客加深点印象.GFS的特点是使用一堆廉价的商用计算机支撑大规模数据处理. 虽然"The Google File System " 是03年发表的老文 ...
- shell的交互式和非交互式登录
工作中经常碰见环境变量加载问题,归根结底就是配置文件的加载问题. 一般会有四种模式:交互式登陆.非交互式登陆.交互式非登陆.非交互非登陆. 交互式和非交互式对环境变量的加载: +----------- ...