| 
 | 
 
异常 
相比起其他一些语言,在Python中我们可以更大胆地使用异常,因为异常在Python中是非常常见的存在,比如下面这种简单的遍历: 
 
a = ['Why', 'so', 'serious', '?'] 
 
for x in a: 
print(x) 
 
当用for进行遍历时,会对要遍历的对象调用iter()。这需要给对象创建一个迭代器用来依次返回对象中的内容。为了能成功调用iter(),该对象要么得支持迭代协议(定义__iter__()),要么得支持序列协议(定义__getitem__())。当遍历结束时,__iter__()或者__getitem__()都需要抛出一个异常。__iter__()会抛出StopIteration,而__getitem__()会抛出IndexError,于是遍历就会停止。 
 
在深度学习中,尤其是数据准备阶段,常常遇到IO操作。这时候遇到异常的可能性很高,采用异常处理可以保证数据处理的过程不被中断,并对有异常的情况进行记录或其他动作: 
for filepath in filelist: # filelist中是文件路径的列表 
try: 
with open(filepath, 'r') as f: 
# 执行数据处理的相关工作 
... 
 
print('{} is processed!'.format(filepath)) 
except IOError: 
print('{} with IOError!'.format(filepath)) 
# 异常的相应处理 
... |   
 
 
 
 |