📅  最后修改于: 2023-12-03 14:51:38.895000             🧑  作者: Mango
在编写程序时,难免会遇到一些异常情况,如输入错误、文件不存在等等。处理这些异常情况,使程序更加健壮、稳定是程序员的职责之一。
Python中处理异常的方式是使用try-except语句。try语句块中的代码是被监视的,如果出现异常则跳转到except语句块处理异常。
try语句的语法格式如下:
try:
# 可能会出现异常的代码
except Exception:
# 异常处理
其中,try
和except
是Python的关键字,Exception
是所有异常的基类,也可以指定特定的异常类型进行处理。
例如,以下代码中,如果打开文件失败,则会执行except语句块中的代码。
try:
f = open("filename.txt")
# 对文件进行操作
f.close()
except IOError:
print("文件打开失败")
可以使用多重except语句处理多种不同的异常。
以下是多重except的语法格式:
try:
# 可能会出现异常的代码
except Exception1:
# 处理Exception1类型的异常
except Exception2:
# 处理Exception2类型的异常
例如,以下代码中,如果尝试除以0,则会执行except语句块中的代码。
try:
a = 1/0
except ZeroDivisionError:
print("除数不能为0")
except Exception:
print("其他异常")
可以在try-except语句中添加finally语句,无论是否出现异常,finally语句块中的代码都会被执行。
例如,以下代码中,无论f是否成功打开文件,finally语句块中的代码都会被执行,保证文件关闭。
try:
f = open("filename.txt")
# 对文件进行操作
finally:
f.close()
除了处理异常,程序员还可以使用raise语句主动抛出异常。
例如,以下代码中,如果参数x小于0,则会抛出ValueError异常。
def func(x):
if x < 0:
raise ValueError("x不能为负数")
return x
使用raise语句时,可以指定异常类型及异常信息。抛出异常后,程序会停止执行,并跳转到最近的处理该异常的except语句块中。
处理异常是程序员不可或缺的技能。在编写程序时,应该预见并处理可能出现的异常情况,使程序更加健壮、稳定。使用try-except语句、多重except语句和finally语句来处理异常,使用raise语句主动抛出异常,在编写高质量代码的道路上大步向前。