Python 异常处理

来源:互联网 发布:淘宝装修比较好的店铺 编辑:程序博客网 时间:2024/06/05 07:38
关键字 关键字说明 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重新引发该异常。

嵌套异常

for i in [1,1,2]:    try:        print(1/i)        for j in [1,0,3]:            try:                                           print(1/j)            except:                print("内")    except:        print("外")----------1.01.0内nei0.33333333333333331.01.0内nei0.33333333333333330.51.0内nei0.3333333333333333

内层异常捕捉异常后,外层异常不会捕捉

for i in [1,0,2]:    try:        print(1/i)        for j in [1,1,3]:            try:                                           print(1/j)            except:                print("内")    except:        print("外")----------1.01.01.00.33333333333333330.51.01.00.3333333333333333

同样外层异常,内层则不会运行
综合来说就是内外不会相互影响
参考文献:
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

原创粉丝点击