1.基础
1)基本语法
try:
可能发生错误的代码
except 异常类型:
如果捕获到该异常类型执行的代码
1.如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常。
2)捕获指定异常
try:
print(num)
except NameError as result:
print result
2)捕获多个异常
try:
print(num)
except (NameError, ZeroDivisionError) as result:
print(result)
3)捕获所有异常
try:
print(num)
except Exception as result:
print(result)
2.else
else表示的是如果没有异常要执行的代码。
try:
print(1)
except Exception as result:
print(result)
else:
print('我是else,是没有异常的时候执行的代码')
3.finally
finally表示的是无论是否异常都要执行的代码,例如关闭文件。
try:
f = open('test.txt', 'r')
except Exception as result:
f = open('test.txt', 'w')
else:
print('没有异常,真开心')
finally:
f.close()
关键字 | 关键字说明 |
---|---|
raise | 抛出/引发异常 |
try/except | 捕获异常并处理 |
pass | 忽略异常 |
as | 定义异常实例(except IOError as e) |
finally | 无论是否出现异常,都执行的代码 |
else | 如果try中的语句没有引发异常,则执行else中的语句 |
except: 会捕获所有异常,包括键盘中断和程序退出请求(用sys.exit()就无法退出程序了,因为异常被捕获了),因此慎用。
except Exception as e:可以捕获除与程序退出sys.exit()相关之外的所有异常.
else作用:没有else语句,当执行完try语句后,无法知道是没有发生异常,还是发生了异常并被处理过了。通过else可以清楚的区分开。
raise语句不包括异常名称或额外资料时,会重新引发当前异常。如果希望捕获处理一个异常,而又不希望
异常在程序代码中消失,可以通过raise重新引发该异常。
参考文献:
http://blog.csdn.net/spch2008/article/details/9343207
http://blog.163.com/xychenbaihu@yeah/blog/static/13222965520128311441139/
http://www.pythontab.com/html/2013/pythonjichu_0204/210.html
http://www.runoob.com/python/python-exceptions.html