异常捕获、处理

异常捕获

异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。一般情况下,在 Python 无法正常处理程序时就会发生一个异常。异常是 Python 对象,表示一个错误。当 Python 脚本发生异常时我们需要捕获处理它,否则程序会终止执行。


异常处理

捕捉异常可以使用 try/except 语句,try/except 语句用来检测 try 语句块中的错误,从而让 except 语句捕获异常信息并处理。如果你不想在异常发生时结束你的程序,只需在 try 里捕获它。


用法及示例

try…except…else 的语法:

try:
<语句>        #运行别的代码
except <名字><语句>        #如果在 try 部份引发了 'name' 异常
except <名字><数据>:
<语句>        #如果引发了 'name' 异常,获得附加的数据
else:
<语句>        #如果没有异常发生
  1. try 的工作原理是,当开始一个 try 语句后,python 就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里,try 子句先执行,接下来会发生什么依赖于执行时是否出现异常。
  2. 如果当 try 后的语句执行时发生异常,python 就跳回到try并执行第一个匹配该异常的 except 子句,异常处理完毕,控制流就通过整个 try 语句(除非在处理异常时又引发新的异常)。
  3. 如果在 try 后的语句里发生了异常,却没有匹配的 except 子句,异常将被递交到上层的 try,或者到程序的最上层(这样将结束程序,并打印默认的出错信息)。
  4. 如果在 try 子句执行时没有发生异常,python 将执行 else 语句后的语句(如果有else的话),然后控制流通过整个 try 语句。

示例:
打开一个文件,在该文件中写入内容,且并未发生异常:

try:
    fh = open('testfile', 'w')
    fh.write('这是一个测试文件,用于测试异常!!')
except IOError:
    print('Error: 没有找到文件或读取文件失败')
else:
    print('内容写入文件成功')
    fh.close()

运行结果:

$ python test.py 内容写入文件成功
$ cat testfile       # 查看写入的内容
这是一个测试文件,用于测试异常!!

try-finally 语句
try-finally 语句无论是否发生异常都将执行最后的代码。语法如下:

try:
<语句>
finally:
<语句>    #退出 try 时总会执行
raise

示例:
打开一个文件,在该文件中写入内容,且并未发生异常:

try:
    fh = open('testfile', 'w')
    fh.write('这是一个测试文件,用于测试异常!!!')
finally:
    print('Error: 没有找到文件或读取文件失败')

运行结果:

$ python test.py Error: 没有找到文件或读取文件失败
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值