21-python_异常处理

亦凉 2022-09-17 07:24 180阅读 0赞

异常处理

filename = raw_input(“input file name:”)
f = None
try :
print “trying to open”, filename
f = open(filename)
except NameError, msg :
print “file name is error!!”
except IOError, msg :
print “open file failed!!”
finally :
if None != f :
f.close()

  1. 异常以及异常抛出

异常抛出机制, 为程序开发人员提供了一种在运行时发现错误,
进行恢复处理, 然后继续执行的能力.

  1. 抛出机制

- 如果在运行时发生异常,解释器会查找相应的处理语句(称为handler)
- 如果在当前函数里没有找到handler, 它就会将异常抛给调用者.
- 如果最外层(全面main) 还是没有handler, 解释器就会退出,
同时打印traceback
- 注意: 一般, 错误都会导致异常, 但一个异常不一定代表错误.
异常有时是一个警告,有时是一个终止信号, 比如退出循环等.

  1. 语法 - 捕获与处理

3.1 try except
try :
pass
except errorType1, msg1:
pass
except errorType2, msg2:
pass

3.2 try except finally

try :
pass
except errorType1, msg1:
pass
except errorType2, msg2:
pass

finally :
pass

  1. raise 抛出异常
    - 手动抛出异常

raise NameError(“Hello, I’m a name error”)
Traceback (most recent call last):
File ““, line 1, in
NameError: Hello, I’m a name error

  1. 常见异常类型
    - AssertionError assert语句失败
    - AttributeError 试图访问一个对象没有的属性
    - IOError I/O异常, 基本是无法打开文件
    - ImportError 无法引入模块或包, 基本是路径问题
    - IndentationError 语法错误, 代码没有正确对齐, 缩进有问题
    - IndexError 下标索引超出序列边界
    - KeyError 试图访问字典中不存在的键
    - KeyboardInterrupt Ctrl+C 被按下
    - NameError 使用一个未初始化的变量
    - SyntaxError 语法错误
    - TypeError 传入的对象类型与要求不符
    - UnboundLocalError 试图访问一个还未设置的全局变量
    - ValueError 传入一个不被期望的值, 即使类型正确

发表评论

表情:
评论列表 (有 0 条评论,180人围观)

还没有评论,来说两句吧...

相关阅读

    相关 python 异常处理

    python中,至少有两种可区分的错误:语法错误(syntax error)和异常(exceptions) 目录 语法错误(syntax error) 异常(except