洛基的城堡

Python学习手记

python异常处理

python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。

  • 异常处理

  • 断言(Assertions)


一个简单的异常例子,打开一个不存在的文件,引发异常:

#!/usr/local/bin/python3.2

try:

f = open("file-not-exists", "r")

except IOError,e:

print("open exception: %s: %s\n" %(e.errno, e.strerror))


与Python异常相关的关键字:

 

raise             抛出/引发异常

try/except     捕获异常并处理

pass             忽略异常

as                 定义异常实例(except IOError as e)

finally            无论是否出现异常,都执行的代码

else               如果try中的语句没有引发异常,则执行else中的语句

except


老版本的Pythonexcept语句写作"except Exception, e"Python 2.6后应写作"except Exception as e"


使用 except 而不带任何异常类型:

try:

      do something

except:

      handle except

会捕获所有异常,包括键盘中断和程序退出请求(sys.exit()就无法退出程序了,因为异常被捕获了),因此慎用。

使用 except Exception as e 可以捕获除与程序退出sys.exit()相关之外的所有异常


else表示如果try中的代码没有引发异常,则会执行else:

try:

f = open("foo", "r")

except IOError as e:

...

else:

data = f.read()


finally表示无论是否有异常,都将被执行:

try:

f = open("foo", "r")

except IOError as e:

...

finally:

f.close()


未完待续……



参考连接:http://www.runoob.com/python/python-exceptions.html

评论

© 洛基的城堡 | Powered by LOFTER