You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python异常处理代码边界用例失败 求排查优化方案

Python异常处理函数故障排查

已知问题梳理

现有代码未覆盖的边界场景和不符合要求的逻辑如下:

  • 非整数输入提示不匹配:当输入内容无法转换为整数时,int() 会抛出系统默认的 ValueError(提示类似invalid literal for int() with base 10: 'xxx'),现有代码直接捕获输出该提示,和要求的自定义提示Input integers value out of range.不一致,这是最常见的未过用例原因。
  • 异常未向外抛出:任务要求函数在条件不满足时抛出异常,但现有代码将所有异常在函数内部捕获、自行打印,外部调用方无法接收到抛出的异常,完全不符合功能要求。
  • 边界值判断可能不符合要求:现有逻辑用a<150、b>100、c>400做判断,如果题目要求允许边界值(比如a≤150、b≥100、c≤400),现有写法会错误拦截边界值输入。

健壮版代码实现

以下代码覆盖所有场景,同时支持「异常向外抛出」和「内部统一处理打印」两种需求,可根据任务要求调整:

def Handle_Exc1():
    # 读取输入并校验格式
    try:
        a = int(input())
        b = int(input())
    except ValueError:
        # 非整数输入统一抛出/输出自定义提示
        err = ValueError('Input integers value out of range.')
        # 如果要求函数抛出异常,保留下面的raise,注释print
        raise err
        # 如果要求内部处理打印,保留下面的print,注释raise
        # print(err)
        return
    
    # 校验输入值范围
    if not (a < 150 and b > 100):
        # 若要求边界值包含等于,修改条件为 a <=150 and b >=100
        err = ValueError('Input integers value out of range.')
        raise err
        # print(err)
        return
    
    # 校验和的范围
    c = a + b
    if c > 400:
        # 若要求和的边界为小于400,修改条件为 c >=400
        err = ValueError('Their sum is out of range')
        raise err
        # print(err)
        return
    
    # 所有校验通过
    print("All in range")

未过用例验证方式

可以用以下边界输入测试,确认问题:

  • 输入非整数:比如第一个输入填abc,看输出是否符合要求
  • 输入边界值:a=150、b=100、c=400,看判断逻辑是否符合预期
  • 外部调用校验异常:测试函数是否能正确向外抛出对应类型的异常

内容的提问来源于stack exchange,提问作者Mahesh Hegde

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 06:15:07