Python中的try-finally语句

Python中的try-finally语句

概述

Python中的try-finally语句

在Python编程中,我们经常需要处理异常情况。当代码抛出异常时,我们可以使用try-except语句来捕获和处理异常。然而,在某些情况下,我们希望无论是否发生异常,都执行一些代码。这时,我们可以使用try-finally语句。try-finally语句中的代码块在try块中的代码执行完毕后,无论是否发生异常,都会被执行。

语法

try:
# 代码块,包含可能会抛出异常的代码
finally:
# 代码块,包含无论是否发生异常都需要执行的代码

在上述语法中,try块包含可能会抛出异常的代码,finally块包含无论是否发生异常都需要执行的代码。

示例代码

示例代码1

try:
    print("执行try块")
    num = 10 / 0
except:
    print("发生异常")
finally:
    print("执行finally块")
Python

运行结果1

执行try
发生异常
执行finally
Python

在上述示例代码中,try块中的代码尝试计算10除以0,这将导致一个除以零的异常。因此,执行流程将跳转到except块,并打印出”发生异常”。然后,不论是否发生异常,finally块中的代码都会被执行,并打印出”执行finally块”。

示例代码2

try:
    print("执行try块")
    num = 10 / 2
except:
    print("发生异常")
finally:
    print("执行finally块")
Python

运行结果2

执行try
执行finally
Python

在上述示例代码中,try块中的代码成功计算出10除以2,没有抛出异常。因此,执行流程不会跳转到except块。不论是否发生异常,finally块中的代码都会被执行,并打印出”执行finally块”。

示例代码3

try:
    print("执行try块")
    num = int("abc")
except:
    print("发生异常")
finally:
    print("执行finally块")
Python

运行结果3

执行try
发生异常
执行finally
Python

在上述示例代码中,try块中的代码尝试将字符串”abc”转换为整数,这将导致一个值错误的异常。因此,执行流程将跳转到except块,并打印出”发生异常”。然后,不论是否发生异常,finally块中的代码都会被执行,并打印出”执行finally块”。

示例代码4

def test_function():
    try:
        print("执行try块")
        num = 10 / 2
        return num
    except:
        print("发生异常")
    finally:
        print("执行finally块")

result = test_function()
print("返回值:", result)
Python

运行结果4

执行try
执行finally
返回值: 5.0
Python

在上述示例代码中,try块中的代码成功计算出10除以2,并返回结果。不论是否发生异常,finally块中的代码都会被执行,并打印出”执行finally块”。最后,返回的结果为5.0。

示例代码5

try:
    print("执行try块")
    num = 10 / 0
except ValueError:
    print("值错误的异常")
finally:
    print("执行finally块")
Python

运行结果5

执行try
执行finally
Traceback (most recent call last):
  File "<ipython-input-1-8fbda9464b85>", line 3, in <module>
    num = 10 / 0
ZeroDivisionError: division by zero
Python

在上述示例代码中,try块中的代码尝试计算10除以0,这将导致一个除以零的异常。由于except块中指定了捕获值错误的异常,而不是除以零的异常,因此不会执行except块中的代码。不论是否发生异常,finally块中的代码都会被执行,并打印出”执行finally块”。最后,程序会抛出除以零的异常。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册