MST

星途 面试题库

面试题:Python自定义异常类及异常链处理

定义一个Python自定义异常类`MyCustomError`,它继承自`Exception`类。编写一个函数`process_data`,该函数接收一个列表作为参数。函数在处理列表元素时,如果遇到负数,抛出`MyCustomError`异常,并在异常中包含负数的值。同时,在捕获`MyCustomError`异常后,将其作为新异常`HigherLevelError`的原因重新抛出,`HigherLevelError`也是自定义异常类,继承自`Exception`类。最后展示如何捕获`HigherLevelError`并获取到原始`MyCustomError`异常信息。
17.7万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
class MyCustomError(Exception):
    pass

class HigherLevelError(Exception):
    pass

def process_data(data_list):
    for num in data_list:
        if num < 0:
            raise MyCustomError(num)

try:
    try:
        process_data([1, -2, 3])
    except MyCustomError as e:
        raise HigherLevelError from e
except HigherLevelError as hle:
    print(f"捕获到HigherLevelError,原始异常信息: {hle.__cause__}")