面试常见问题:python中异常处理,try-except-finally的使用

在Python中,异常处理机制是通过try-except-finally结构来实现的。它允许程序在运行时捕获和处理错误,从而避免程序崩溃,并提供更友好的错误提示或恢复机制。

一、异常处理的基本语法

try:
    # 可能引发异常的代码块
    risky_code()
except SomeException as e:
    # 捕获特定异常并处理
    handle_exception(e)
except AnotherException as e:
    # 捕获另一种异常
    handle_another_exception(e)
else:
    # 如果没有异常发生,执行此代码块
    no_exception_occurred()
finally:
    # 无论是否发生异常,都会执行的代码块,通常用于释放资源(如关闭文件、断开连接等)。
    cleanup_resources()

二、异常处理实例

        场景描述:

                需要读取一个文件的内容,并处理可能出现的异常(如文件不存在、文件读取错误等)。

        代码实现:
def read_file(file_path):
    try:
        # 尝试打开并读取文件
        with open(file_path, 'r') as file:
            content = file.read()
            print("文件内容读取成功:")
            print(content)
    except FileNotFoundError:
        # 捕获文件不存在的异常
        print(f"错误:文件 '{file_path}' 不存在!")
    except PermissionError:
        # 捕获权限不足的异常
        print(f"错误:没有权限读取文件 '{file_path}'!")
    except Exception as e:
        # 捕获其他未知异常
        print(f"发生未知错误:{e}")
    else:
        # 如果没有异常发生,执行此代码块
        print("文件读取完成,未发生异常。")
    finally:
        # 无论是否发生异常,都会执行的代码块
        print("资源清理完成。")

# 测试代码
read_file("example.txt")  # 假设文件存在
read_file("codedecode.txt") # 假设未知错误
read_file("nonexistent.txt")  # 假设文件不存在
        输出结果:

面试常见问题:python中异常处理,try-except-finally的使用_第1张图片

三、常见异常类型

异常类型 描述
FileNotFoundError 文件或目录不存在。
PermissionError 没有足够的权限访问文件或目录。
ValueError 传入无效的参数值(如将字符串转为整数)。
TypeError 操作或函数应用于不适当类型的对象。
IndexError 索引超出序列范围。
KeyError 字典中不存在指定的键。
ZeroDivisionError 除数为零。

四、结论

        通过合理使用异常处理机制,可以显著提升程序的健壮性和用户体验。

你可能感兴趣的:(软件测试-面试常见问题,python,开发语言)