try-except-else-finally的使用
不同与java中的try/catch异常处理语句,python中使用try/except处理异常。
本文记录写代码时遇到了异常,但是使用打印语句排除比较麻烦,这里使用try/except捕捉异常问题。
1、try模块
有可能发生异常的代码。
2、except模块
处理异常的代码。
3、else模块
没有发生异常时需要运行的代码。
4、finally模块
不管异常有没有发生,跳出try/except之后必将执行的语句。
5、try/except的处理流程
try:#可能出现异常的代码块,如果没有异常处理,python会直接停止执行程序
...code ...
except: #异常发生时执行的代码块。这里会捕捉到上面代码中的异常,并根据异常抛出异常进行相应的操作
#except ExceptionName,args: #同时也可以接受异常名称和参数,针对不同形式的异常做处理
...code ...
else: #异常没有发生时执行的代码块。如果没有异常则执行else。
...code ...
finally:#退出try语句块总会执行的程序(不写也可以)
...code ...
6、异常代码处理实例
#可能会抛出string out of index异常。原因是example[0]不在dict_features的key中
try:
dict_features[example[0]].keys()
except:
print(example)
else:
if example[1] in dict_features[example[0]].keys():
features.append(dict_features[example[0]][example[1]])
else:
features.append([0.0, 0.0, 0.0, 10000.0])