MST

星途 面试题库

面试题:Python异常处理:try - except的多种用法

在Python中,简述try - except语句的基本结构,并举例说明如何捕获不同类型的异常,如`ZeroDivisionError`和`FileNotFoundError`,同时阐述`else`和`finally`子句在异常处理中的作用。
33.0万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

try - except语句基本结构

try:
    # 可能会引发异常的代码块
    pass
except SomeException as e:
    # 捕获到SomeException异常时执行的代码块
    pass

捕获不同类型异常示例

try:
    result = 10 / 0  # 可能引发ZeroDivisionError
    file = open('nonexistent_file.txt', 'r')  # 可能引发FileNotFoundError
except ZeroDivisionError as e:
    print(f"捕获到除零错误: {e}")
except FileNotFoundError as e:
    print(f"捕获到文件未找到错误: {e}")

else子句作用

else子句在try块没有引发任何异常时执行。

try:
    num1 = 10
    num2 = 2
    result = num1 / num2
except ZeroDivisionError as e:
    print(f"捕获到除零错误: {e}")
else:
    print(f"计算结果: {result}")

在上述代码中,如果try块中的除法运算成功(未引发ZeroDivisionError),则会执行else块。

finally子句作用

finally子句无论try块是否引发异常都会执行。常用于资源清理,如关闭文件、数据库连接等。

file = None
try:
    file = open('test.txt', 'r')
    data = file.read()
except FileNotFoundError as e:
    print(f"捕获到文件未找到错误: {e}")
finally:
    if file:
        file.close()

在上述代码中,无论try块中打开文件和读取文件是否成功,finally块都会确保文件被关闭。