捕获异常

在python编程中,如何res = fun(),fun函数报错,如何不中断函数进行,且能够继续执行但是后续可以判断这里时候有错误

在Python中,有几种方法可以捕获函数错误而不中断程序执行,并且能够判断是否发生了错误:

方法1: 使用 try-except 捕获异常

try:
    res = fun()
    error_occurred = False
except Exception as e:
    res = None  # 或设置默认值
    error_occurred = True
    error_message = str(e)
    print(f"发生错误: {e}")

# 后续判断
if error_occurred:
    print("处理错误情况")
else:
    print("正常执行")

方法2: 封装成返回错误状态的函数

def safe_fun():
    try:
        result = fun()
        return result, None  # 返回 (结果, 错误)
    except Exception as e:
        return None, e  # 返回 (None, 错误对象)

# 使用
res, error = safe_fun()
if error:
    print(f"出错了: {error}")
else:
    print(f"成功: {res}")

方法3: 使用标志变量

res = None
success = False

try:
    res = fun()
    success = True
except Exception as e:
    success = False
    print(f"错误: {e}")

# 继续执行其他代码
if success:
    # 使用 res
    pass
else:
    # 处理错误情况
    pass

方法4: 返回特殊值标识错误

def safe_call(func, default=None):
    try:
        return func()
    except Exception as e:
        print(f"错误: {e}")
        return default

res = safe_call(fun, default="ERROR")
if res == "ERROR":
    print("函数执行失败")

推荐使用方法2,因为它既能获取结果,又能获取具体的错误信息,便于后续的错误处理和调试。

posted @ 2026-02-06 11:44  X1OO  阅读(4)  评论(0)    收藏  举报