python错误和异常学习笔记

1. python中的异常


NameError: 尝试访问一个未申明的变量
ZeroDivisionError: 除数为零
SyntaxError: 解释器语法错误
IndexError: 请求的索引超出序列范围
KeyError:
请求一个不存在的字典关键字
IOError: 输入/输出错误
AttributeError: 尝试访问未知的对象属性
ValueError:
值错误
TypeError: 类型错误
SystemExit: 当前python应用程序需要退出
KeyboardInterupt:
用户按下CTRL+C关闭python


2. 检测和处理异常


异常可以通过try语句来检测
try语句有两种主要形式:try-except和try-finally
一个try语句可以对应一个或多个except子句,但只能对应一个finally子句,或是一个try-except-finally复合语句


3. try-except语句


try:
    try_suite
except Exception[, reason]:
   
except_suite
在程序运行时,先尝试执行try块里的所有代码,如果代码块完成后没有异常发生,执行流就会忽略except语句继续执行。而当except语句所指定的异常发生后,我们保存了错误原因,控制流立即跳转到对应的处理器。


4. 带有多个except的try语句


首先尝试执行try子句,如果没有错误,忽略所有的except从句继续执行。如果发生异常将在except子句中查找匹配的异常,如果找到对应的处理器,执行流跳转到对应的except从句执行。

 

5.处理多个异常的except语句


except (Exception1, Exception2) [, reason]:
   
suit_for_exception1_and
Exception2
except语句可以处理任意多个异常,前提是它们被放入一个元组里。
捕获所有异常可以使用:
try:
   
:
except BaseException, e:
    #handle all errors

try:
   
:
except Exception, e:
    #handle real
errors
空except子句处理所有异常已经不推荐使用。


6. else子句


在try范围中没有异常被检测到时,执行else子句。


7. finally子句


finally子句无论异常是否发生,是否捕捉都会执行的一段代码。
无论什么语法,至少要有一个except子句,而else和finally都是可选的。

posted @ 2013-02-04 11:40  独孤侠  阅读(331)  评论(0编辑  收藏  举报