Python入门教程第53篇 异常处理之try…except…finally

Posted 不剪发的Tony老师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python入门教程第53篇 异常处理之try…except…finally相关的知识,希望对你有一定的参考价值。

本篇我们继续学习 Python 异常处理,主要介绍 try…except…finally 语句的使用。

try…except…finally 语句简介

try…except 语句可以在 try 分支中捕获一个或多个异常并且在 except 分支中处理这些异常。该语句还有一个可选的 finally 分支:

try:
    # 业务代码
except:
    # 异常处理
finally:
    # 清理代码

无论是否发生异常,都会执行 finally 分支中的代码。try 分支或者任何 except 分支执行之后立即执行 finally 分支。

以下流程图演示了 try…except…finally 语句的执行过程:

try…except…finally 语句示例

以下示例使用了 try…except…finally 语句:

a = 10
b = 0

try:
    c = a / b
    print(c)
except ZeroDivisionError as error:
    print(error)
finally:
    print('Finishing up.')

输出结果如下:

division by zero
Finishing up.

以上示例中,try 分支产生了一个 ZeroDivisionError 异常,执行 except 分支之后还执行了 finally 分支。

以下示例中的 try 分支没有产生异常,因此执行完 try 分支之后再执行 finally 分支:

a = 10
b = 2

try:
    c = a / b
    print(c)
except ZeroDivisionError as error:
    print(error)
finally:
    print('Finishing up.')

输出结果如下:

5.0
Finishing up.

try…finally 语句

try…except…finally 语句中的 except 分支也可可选的,因此我们可以这样使用:

try:
    # 业务代码
finally:
    # 总是会被执行的代码

通常来说,当我们无法处理异常但又需要清理资源时可以使用这种语句结构。例如,无论是否出现异常都需要关闭已经打开的文件。

总结

  • 无论是否发生异常,try…except…finally 语句都会执行 finally 分支中的语句。
  • 使用 finally 分支清理资源,例如关闭文件。

以上是关于Python入门教程第53篇 异常处理之try…except…finally的主要内容,如果未能解决你的问题,请参考以下文章

Python入门教程第52篇 异常处理之try…except

python学习第七周之异常处理

芝麻HTTP:Python爬虫入门之URLError异常处理

Python语言之异常处理与测试

python9之异常处理

Python学习第15篇:面向对象之异常处理