MST

星途 面试题库

面试题:Python异常处理高级难度题目

设计一个Python模块,包含多个函数,这些函数可能引发不同类型的异常(如文件读取异常、类型转换异常等)。编写一个主函数,调用这些函数,并通过适当的异常处理机制保证程序即使遇到异常也能正确清理资源(如关闭打开的文件),并根据不同异常返回合适的用户友好错误提示。
29.2万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
import os


def read_file(file_path):
    try:
        with open(file_path, 'r') as f:
            content = f.read()
        return content
    except FileNotFoundError:
        raise FileNotFoundError("文件不存在,请检查文件路径。")


def convert_to_int(s):
    try:
        return int(s)
    except ValueError:
        raise ValueError("无法将输入内容转换为整数,请检查输入。")


def main():
    file_path = 'nonexistent_file.txt'
    try:
        content = read_file(file_path)
        num = convert_to_int(content)
        print(f"成功将文件内容转换为整数: {num}")
    except FileNotFoundError as e:
        print(f"错误: {e}")
    except ValueError as e:
        print(f"错误: {e}")


if __name__ == "__main__":
    main()

在上述代码中:

  1. read_file 函数用于读取文件内容,如果文件不存在则抛出 FileNotFoundError 异常。
  2. convert_to_int 函数尝试将传入的字符串转换为整数,如果无法转换则抛出 ValueError 异常。
  3. main 函数调用了这两个函数,并使用 try - except 块捕获可能出现的异常,并打印用户友好的错误提示。这里利用了 with 语句来自动关闭文件,保证了资源的正确清理。