python错误和异常(1)
1 SyntaxError: Python解释器语法错误,是唯一不是在运行时发生的异常。
2 检测和处理异常
try语句有两种主要形式:try-except 和 try-finally. 只能二选一。
一个try语句可以对应一个或多个except子句,但只能对应一个finally子句。
try语句块中异常发生点后的剩余语句永远不会到达。
except后面相当于一个处理器,处理异常发生时应该怎么做。
异常或错误的处理流程:当一个异常被引发,剩余代码将会忽略,解释器搜索处理器,如果没有合适的处理器,那么异常就向上移交给调用者去处理,这意味着堆栈框架立即回到之前的那个,如果在上层调用者也没有找到对应的处理器,该异常会继续被向上提交,直到找到合适的处理器,如果到达最顶层仍然没有找到对应处理器,那么就认为这个异常是未处理的,python解释器会显示出跟踪返回消息,然后退出。
try-except语句可以连贯使用,这样可以处理多种异常。
def safe_float(obj):
try:
retval = float(obj)
except ValueError:
retval = 'could not convert non-number to float'
except TypeError:
retval = 'object type cannot be converted to float'
return retval
这样,safe_float()函数就可以分别处理ValueError和TypeError两种异常了。
python2.5以后,对于keyboardInterrupt和SystemExit两个异常(not real error),从Exception里移出,和Exception平级,这样当使用如下的catch_all代码时,就不比为这两个异常创建额外的处理器。
try:
....
except Exception, e:
#handle real errors
异常参数:异常引发后,它会被传递给异常处理器,作为附加帮助信息,一般包含一个指示错误原因的字符串元组。
finally子句:finally子句是无论异常是否发生,是否捕捉都会执行的一段代码。
try:
A
except MyException:
B
else:
C
finally:
D
上面这段代码有两种可能的执行顺序:
- 正常:A-C-D
- 异常:A-B-D
try语句的嵌套:
ccfile = None
try:
tyr:
ccfile = open('cardata.txt', 'r')
txns = ccfile.readlines()
except IOError:
log.write('no txns this month\n')
finally:
if ccfile:
ccfile.close()
这样写的好处是,当readlines调用失败时,异常处理会去继续执行except中的子句,并且在finally子句中会去尝试关闭文件。
一个需要注意的地方是:如果finally中的代码引发了另一个异常或由于return, break, continue语法而终止,原来的异常将会丢失而无法重新引发。
后面会接着讲到 with语句等。
python错误和异常(1)的更多相关文章
- Python错误和异常概念(总)
转载请标明出处: http://www.cnblogs.com/why168888/p/6435956.html 本文出自:[Edwin博客园] Python错误和异常概念(总) 1. 错误和异常的处 ...
- Python - 错误和异常 - 第十九天
Python 错误和异常 作为 Python 初学者,在刚学习 Python 编程时,经常会看到一些报错信息,在前面我们没有提及,这章节我们会专门介绍. Python 有两种错误很容易辨认:语法错误和 ...
- Python错误和异常学习
一:错误解释 1.语法错误:代码不符合解释器或者编译器语法 2.逻辑错误:不完整或者不合法输入或者计算出现问题 代码运行前的语法或者逻辑错误,语法错误在执行前修改,逻辑错误无法修改 二:异常 执行过程 ...
- 13.python错误和异常
一.错误和异常1.程序中的错误分为俩种:(1)语法错误:不按照语言的规则,必须在程序执行前就改正(2)逻辑错误2.异常就是程序运行时发生错误的信号,分为三部分(1)Traceback:异常追踪的信息( ...
- Python错误和异常 学习笔记
错误和异常概念 错误: 1.语法错误:代码不符合解释器或者编译器语法 2.逻辑错误:不完整或者不合法输入或者计算出现问题 异常:执行过程中出现万体导致程序无法执行 1.程序遇到 ...
- Python错误与异常
1 异常和错误 1.1 错误和异常 从软件方面来说,错误是语法或者逻辑上的,语法错误指示软件的结构上有错误,导致不能被解释器解释.当程序的语法正确后,剩下的就是逻辑错误了,逻辑错误可能是由于不完整或者 ...
- Python 错误和异常
1.Python异常类 Python是面向对象语言,所以程序抛出的异常也是类.常见的Python异常有以下几个,大家只要大致扫一眼,有个映像,等到编程的时候,相信大家肯定会不只一次跟他们照面(除非你不 ...
- python错误和异常
一:语法错误syntax errors 熟悉语法! 二:异常 ①打印错误信息时,异常的类型作为异常的内置名显示,并以调用栈的形式显示具体信息 ②常见的异常: ...
- Python 错误和异常小结[转]
原文链接 http://blog.csdn.net/sinchb/article/details/8392827 事先说明哦,这不是一篇关于Python异常的全面介绍的文章,这只是在学习Pyth ...
- Python 错误和异常小结
1.Python异常类 Python是面向对象语言,所以程序抛出的异常也是类.常见的Python异常有以下几个,大家只要大致扫一眼,有个映像,等到编程的时候,相信大家肯定会不只一次跟他们照面(除非你不 ...
随机推荐
- Eclipse/MyEclipse按任何键,都可以提示?(最强帮手)
说明: 一般在Eclipse ,MyEclipse代码里面,打个foreach,switch等这些,是无法得到代码提示的(不信自己试试),其他的就更不用说了,而在Microsoft Visual St ...
- web端网页适配移动端注意事项,以及遇到的问题
1.一定要加上 <!-- name=“viewport” 指视口 width=device-width 宽度等于视口宽 initial-scale=1.0 像素比例 maximum-scale= ...
- c++ 网络编程课设入门超详细教程 ---目录
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9663167.html c++ 网络编程(一)TCP/UDP windows/linux 下入门 ...
- ruby **option作为函数参数,map的key必须是符号
# NEW UNNAMED KEYWORD ARGUMENTSdef new_way(**options)return options[:foo]end# => :new_waynew_way( ...
- UTF8最好不要带BOM,附许多经典评论
UTF-8 不需要 BOM,尽管 Unicode 标准允许在 UTF-8 中使用 BOM.所以不含 BOM 的 UTF-8 才是标准形式,在 UTF-8 文件中放置 BOM 主要是微软的习惯(顺便提一 ...
- [转载]二叉树(BST,AVT,RBT)
二叉查找树(Binary Search Tree)是满足如下性质的二叉树:①若它的左子树非空,则左子树上所有结点的值均小于根结点的值:②若它的右子树非空,则右子树上所有结点的值均大于根结点的值:③左. ...
- 师傅领进门之6步教你跑通一个AI程序!
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由云计算基础发表于云+社区专栏 源码下载地址请点击原文查看. 初学机器学习,写篇文章mark一下,希望能为将入坑者解点惑.本文介绍一些机 ...
- android 使用图片轮播图---banner 使用
转自:https://github.com/youth5201314/banner 使用步骤 Step 1.依赖banner Gradle dependencies{ compile 'com.you ...
- 503 Service Unavailable
转自:https://jingyan.baidu.com/article/6b1823099a258eba58e15902.html 第一 服务是不是被关闭了. 第二 原因IIS设置最大并发连接数 网 ...
- shortcut icon和icon代码的区别介绍
语句一: <link rel="shortcut icon" href="favicon.ico" /> 语句二: <link rel=&qu ...