python文件不存在异常_Python文件和异常处理

6.
异常和文件处理
- Dive Into Python
6.1
异常处理
.
Python
的异常

try
【python文件不存在异常_Python文件和异常处理】except
finally
来处理
.
并且
except
后还可以跟
else .
引发异常用
raise
如果抛出的异常没有被处理
.

Python IDE
中是显示一些红色的信息
.
在真正的
Python
程序运行时
.
会导
致程序终止
.
在以前我们已经见到过一下几种异常
:

Dictionary
中如果使用的
key
不存在
.
会引发
KeyError
异常
.

:
>>> d = {"a":1, "b":"abc"}
>>> d["c"]
Traceback (most recent call last):
File "", line 1, in
KeyError: 'c'
搜索列表中不存在的值
.
将引发
ValueError
异常
.

:
>>> li = [1,2]
>>> li.index(3)
Traceback (most recent call last):
File "", line 1, in
ValueError: list.index(x): x not in list
对应的
.

用下标来引用列表中的元素
.
若下标出界
.
会产生
IndexError
异常
.

:
>>> li[2]
Traceback (most recent call last):
File "", line 1, in
IndexError: list index out of range
调用不存在的方法
.
会引发
AttributeError
异常
.
引用不存在的变量
.
引发
NameError
异常
.
未强制转化就混用数据类型
.
引发
TypeError
异常
.
文件操作错误引发的
IOError.

:
try
:
fsock = open("/notthere")
except
IOError:
print "The file dose not exits..."
else
:
print "open the file."
print "this line will always print"
注意上边的代码中
:
open
是一个内置函数
.
用来打开文件
.
并返回一个文件对象
.
try except
后边可以跟
else
语句
.
当没有捕捉到指定的异常时
.
执行
else
语句
.
导入一个模块时
.
若模块不存在
.
会引发
ImportError
异常
.
还可以
定义自己的异常类
.
定义时
让它继承内置的
Exception

.
然后在需要抛出异常时用
raise
抛出
.

    推荐阅读