📜  处理异常 (1)

📅  最后修改于: 2023-12-03 14:51:38.895000             🧑  作者: Mango

处理异常

在编写程序时,难免会遇到一些异常情况,如输入错误、文件不存在等等。处理这些异常情况,使程序更加健壮、稳定是程序员的职责之一。

try-except语句

Python中处理异常的方式是使用try-except语句。try语句块中的代码是被监视的,如果出现异常则跳转到except语句块处理异常。

try语句的语法格式如下:

try:
    # 可能会出现异常的代码
except Exception:
    # 异常处理

其中,tryexcept是Python的关键字,Exception是所有异常的基类,也可以指定特定的异常类型进行处理。

例如,以下代码中,如果打开文件失败,则会执行except语句块中的代码。

try:
    f = open("filename.txt")
    # 对文件进行操作
    f.close()
except IOError:
    print("文件打开失败")
多重except语句

可以使用多重except语句处理多种不同的异常。

以下是多重except的语法格式:

try:
    # 可能会出现异常的代码
except Exception1:
    # 处理Exception1类型的异常
except Exception2:
    # 处理Exception2类型的异常

例如,以下代码中,如果尝试除以0,则会执行except语句块中的代码。

try:
    a = 1/0
except ZeroDivisionError:
    print("除数不能为0")
except Exception:
    print("其他异常")
finally语句

可以在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语句主动抛出异常,在编写高质量代码的道路上大步向前。