Python 中异常处理的基本语法和用法是什么

2023-04-01 00:00:00 异常 语法 用法

在Python中,异常处理是一种用于检测和处理运行时错误的机制。异常处理的基本语法如下:

try:
    # 代码块
except ExceptionType:
    # 异常处理代码块
else:
    # 可选的代码块,在try块没有抛出异常时执行
finally:
    # 可选的代码块,在try块执行完毕后总是执行

其中,try关键字标志着要尝试执行的代码块,except关键字用于捕获指定类型的异常并执行相应的异常处理代码块,else关键字用于在try块没有抛出异常时执行可选的代码块,finally关键字用于在try块执行完毕后总是执行可选的代码块。

下面是一个示例,演示如何使用try/except语句来捕获并处理异常:

def divide(a, b):
    try:
        result = a / b
    except ZeroDivisionError:
        print("除数不能为0")
    else:
        print(f"{a}/{b} = {result}")
    finally:
        print("计算完成")

divide(10, 2)   # 输出:10/2 = 5.0,计算完成
divide(10, 0)   # 输出:除数不能为0,计算完成

在上面的示例中,divide函数尝试计算两个参数的商。如果除数为0,将抛出ZeroDivisionError异常。通过在try块中执行计算,然后在except块中处理该异常,并在finally块中打印一条消息来实现异常处理。

另外,在except语句中也可以使用as关键字来指定一个异常对象的别名,以便在异常处理代码块中访问它的属性和方法。例如:

try:
    # 代码块
except ExceptionType as e:
    # 异常处理代码块,可以访问异常对象e的属性和方法

以下是一个使用异常对象别名的示例:

def print_website(name):
    try:
        if name == "pidancode.com":
            print("欢迎访问 pidancode.com!")
        else:
            raise ValueError(f"未知的网站:{name}")
    except ValueError as e:
        print(e)
print_website("pidancode.com")      # 输出:欢迎访问 pidancode.com!
print_website("皮蛋编程")          # 输出:未知的网站:皮蛋编程

在上面的示例中,print_website函数尝试打印欢迎消息,但如果传入的网站名不是“pidancode.com”,它将引发一个ValueError异常,并在except块中打印异常对象的错误消息。

相关文章