欢迎访问宙启技术站
智能推送

Python中使用try和except函数捕获异常的方法及示例

发布时间:2023-06-07 14:04:05

当程序运行时,可能会出现异常情况,如果不进行处理程序会崩溃,为了防止程序崩溃,Python提供了try和except函数来捕获异常情况。try和except语句块用于检测和处理异常。在try块中,程序正常执行;如果出现异常,则执行except中的代码块,处理异常。

try和except的语法:

try:
    # 正常的代码块
except:
    # 发生异常,执行这个代码块

在except中可以处理任何类型的异常,例如:

try:
    # 尝试执行下面的代码
    print(x)
except:
    # 如果出错了,就执行这个代码块
    print("出现了异常")

以上代码在执行时,在第2行会出现异常:变量x未定义。程序会跳转到except中执行,输出“出现了异常”。

我们也可以指定特定的异常类型:

例如,我们可以捕获除零错误:

try:
    x = 10 / 0
except ZeroDivisionError:
    print("除零错误")

如果执行x = 10 / 0,则会捕获ZeroDivisionError异常。

我们还可以使用多个except子句来处理不同类型的异常:

try:
    x = int(input("请输入一个数字:"))
    y = 10 / x
except ZeroDivisionError:
    print("除零错误")
except ValueError:
    print("输入不是一个数字")

如果输入的是一个字母,那么程序会捕获ValueError异常。如果输入的是0,程序会捕获ZeroDivisionError异常。

我们还可以在try语句块中使用else代码块,在try块中没有发生异常时,else块中的代码会被执行。

try:
    x = int(input("请输入一个数字:"))
    y = 10 / x
except ZeroDivisionError:
    print("除零错误")
except ValueError:
    print("输入不是一个数字")
else:
    print("运行成功,y的值是:", y)

以上代码在输入一个不为0的数字时,会计算y的值,并输出“运行成功,y的值是:2.5”。 如果输入的是0,则会捕获ZeroDivisionError异常,输出“除零错误”。

最后,我们也可以使用finally关键字来指定无论是否发生异常都执行的代码块。

try:
    x = int(input("请输入一个数字:"))
    y = 10 / x
except ZeroDivisionError:
    print("除零错误")
except ValueError:
    print("输入不是一个数字")
else:
    print("运行成功,y的值是:", y)
finally:
    print("执行完毕")

以上代码在无论程序是否发生异常时,最后都会输出“执行完毕”。

总结:

try和except语句块用于检测和处理异常,可以捕获任何类型的异常,也可以使用多个except子句来处理不同类型的异常,还可以使用else块来执行当try块没有发生异常时执行的代码,同时也可以使用finally关键字来执行无论如何都要执行的代码。