python学习笔记-异常<10>

1. 遇到的常见的异常:


SyntaxError 语法错误
NameError 未声明/初始化对象
TypeError 对类型无效的操作
KeyError 字典中查找不存在的键
IOError 输入/输出操作失败
IndexError 序列中没有此索引
ImportError 导入模块/对象失败

2. 异常捕抓:


try......except

用来检测语句中的错误,从而让except语句捕获异常并处理
try后面接的语句一旦出现异常错误后面的语句将不执行
except Error as reason:

是把异常的原因给reason这个变量

-- coding:utf-8 --

try:
f = open('abcdefg','r')
except IOError as reason:
print '文件操作错误',reason

输出:
文件操作错误 [Errno 2] No such file or directory: 'abcdefg'

3. 异常处理:


try.......finally
finally后面的语句就是无论异常是否发生都会执行的语句

-- coding:utf-8 --

try:
f = open('abcdefg','w')
f.write('Hello python')
f.read()
except IOError as reason:
print u'文件操作错误',reason
finally:
f.close()
print u'异常处理'
输出:
文件操作错误 File not open for reading
异常处理

4. 触发异常:


raise[Exception]

使用raise语句自己触发异常,并且raise后面的语句不再执行

-- coding:utf-8 --

try:
print 123
raise IOError('oooooo')
print 234
except IOError,NameError:
print u'文件操作错误',NameError
finally:
print 'python'

输出:
123
文件操作错误 oooooo
python

5. 断言


assert条件:用来申明某个条件是真的,如果条件是假的则会跑出AssertionError异常

assert 1 > 2
Traceback (most recent call last):
File "", line 1, in
assert 1 > 2
AssertionError
assert 1 < 2

6. 示例


-- coding:utf-8 --

try:
filename = 'm.py'
f = open(filename)
except IOError as x:
xx = raw_input(u'文件不存在,是否创建这个文件? (Y/N)')
if xx == 'Y':
f = open(filename,'w+')
print u'已为您创建了文件 %s现在可以对f文件对象进行读写的操作' % filename
finally:
f.close()
输出:
文件不存在,是否创建这个文件? (Y/N)Y
已为您创建了文件 m.py现在可以对f文件对象进行读写的操作

你可能感兴趣的:(python学习笔记-异常<10>)