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

Python try except多分支异常处理失效,KeyError未被捕获求助

问题分析与解决方法

问题根源

字典中访问不存在的键时,Python抛出的是KeyError,你当前代码里第一个except分支捕获的是ValueError,导致异常无法被匹配处理,直接向外抛出。

修正后的代码

把捕获的异常类型改成KeyError即可:

try:
    scroll_token = response["scroll_token"]
except KeyError as e:
    logging.info(f'could not find "scroll_token" {e}')
    try:
        scroll_token = response["scroll_id"]
    except KeyError as e:
        logging.info(f'could not find "scroll_id" {e}')
        # 可根据需求添加默认值或抛出自定义异常
        # scroll_token = None
        # raise RuntimeError("No valid scroll token/id found")

更简洁的替代写法

如果不需要分别记录两种异常的日志,也可以用字典的get方法简化逻辑,避免嵌套try-except:

scroll_token = response.get("scroll_token")
if scroll_token is None:
    scroll_token = response.get("scroll_id")
    if scroll_token is None:
        logging.info("Neither scroll_token nor scroll_id exists in response")

或者更紧凑的写法:

scroll_token = response.get("scroll_token") or response.get("scroll_id")
if not scroll_token:
    logging.info("Neither scroll_token nor scroll_id exists in response")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 04:12:10