<h3>1. 遇到的常见的异常:</h3>
SyntaxError 语法错误
NameError 未声明/初始化对象
TypeError 对类型无效的操作
KeyError 字典中查找不存在的键
IOError 输入/输出操作失败
IndexError 序列中没有此索引
ImportError 导入模块/对象失败
<h3>2. 异常捕抓:</h3>
<h5>try......except</h5>
用来检测语句中的错误,从而让except语句捕获异常并处理
try后面接的语句一旦出现异常错误后面的语句将不执行
<h5>except Error as reason:</h5>
是把异常的原因给reason这个变量
<pre>
-- coding:utf-8 --
try:
f = open('abcdefg','r')
except IOError as reason:
print '文件操作错误',reason
输出:
文件操作错误 [Errno 2] No such file or directory: 'abcdefg'
</pre>
<h3>3. 异常处理:</h3>
<h5>try.......finally</h5> finally后面的语句就是无论异常是否发生都会执行的语句
<pre>
-- 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
异常处理
</pre>
<h3>4. 触发异常:</h3>
<h5>raise[Exception]</h5>
使用raise语句自己触发异常,并且raise后面的语句不再执行
<pre>
-- coding:utf-8 --
try:
print 123
raise IOError('oooooo')
print 234
except IOError,NameError:
print u'文件操作错误',NameError
finally:
print 'python'
输出:
123
文件操作错误 oooooo
python
</pre>
<h3>5. 断言</h3>
assert条件:用来申明某个条件是真的,如果条件是假的则会跑出AssertionError异常
<pre>
assert 1 > 2
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
assert 1 > 2
AssertionError
assert 1 < 2
</pre>
<h3>6. 示例</h3>
<pre>
-- 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文件对象进行读写的操作
</pre>
网友评论