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关键字来执行无论如何都要执行的代码。
