1.10 异常处理
在Python中对于程序异常的处理,主要使用try …except的语法格式。我们来看一下几种try…exception的用法。
1.try …except语句
语法格式:
try:
block1
except[ExceptionName [as alias]]:
block2
说明:
block1:表示可能出现错误的代码块
ExceptionName [as alias] :可选参数,用于指定要捕获的异常,其中ExceptionName表示要捕获的异常名称,如果在其右侧加上as alias,则表示为当前的异常指定一个别名,通过别名记录异常的具体内容。(如果不指定异常名称,则表示捕获全部的异常)
block2:表示block1出现异常时,执行代码块。在这里一般输出异常信息或提示
2. try…except…else语句
语法格式
try:
block1
except[ExceptionName [as alias]]:
block2
else:
block3
说明:
block1中的语句执行没有出现异常执行block3,出现异常执行block2。block3不被执行
3. try…except…finally语句
语法格式
try:
block1
except[ExceptionName [as alias]]:
block2
finally:
block3
说明:
如果block1发生异常则执行block2、block3;如果block1未发生异常则执行block3就是说,无论block1是否发生异常都要执行block3中的语句。
常见异常:
异常 | 描述 |
---|---|
NameError | 尝试访问一个没有声明的变量引发的错误 |
IndexError | 索引超出序列范围引发的错误 |
IndentationError | 缩进错误 |
ValueError | 传入的值错误 |
KeyError | 请求一个不存在的字典关键字引发的错误 |
IOError | 输入输出错误 |
ImprotError | 当improt语句无法找到模块或from无法在模块中找到相应的名称时引发的错误 |
AttributeError | 尝试访问未知的对象属性引发的错误 |
TypeError | 类型不合适引发的错误 |
MemoryError | 内存不足 |