MST

星途 面试题库

面试题:Python中try - except块嵌套与函数调用结合

定义三个函数func1、func2、func3。func1调用func2,func2调用func3。在func3中执行可能引发IndexError的列表越界操作。在func1中使用try - except块的嵌套来捕获func3中可能引发的IndexError,并且在内层try - except块捕获到异常后,记录异常信息到一个日志文件中(使用Python的logging模块),外层try - except块捕获func2调用func3时可能出现的其他异常,打印异常类型。请编写完整代码。
46.0万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
import logging

# 配置logging模块
logging.basicConfig(filename='error.log', level=logging.ERROR, format='%(asctime)s - %(levelname)s - %(message)s')


def func3():
    my_list = [1, 2, 3]
    # 故意引发IndexError
    value = my_list[5]
    return value


def func2():
    return func3()


def func1():
    try:
        try:
            func2()
        except IndexError as e:
            logging.error(f'捕获到IndexError: {e}')
    except Exception as e:
        print(f'捕获到其他异常类型: {type(e)}')


if __name__ == "__main__":
    func1()