为了账号安全,请及时绑定邮箱和手机立即绑定

处理 python 错误的最佳实践

处理 python 错误的最佳实践

慕妹3242003 2022-12-20 14:57:54
try:    msg_json = json.loads(message_string)    if "task" in msg_json:        job_type = msg_json["task"]        return (job_type, msg_json)    logger.error(        "Could not parse message: must provide 'task' property",        extra={"message_string": message_string},    )    return emptyexcept Exception:    logger.exception(        "Error parsing JSON message. Did you accidentally double-escape it?",        extra={"message_string": message_string},    )    return empty我有这段代码,我试图加载一些 JSON 格式的消息字符串。回顾这段代码后,我觉得我可能以错误的方式使用 try 和 catch,并且我正在寻找建议,因为我是 python 的新手,可能会有更简洁的方法。这里没有错误,但这对我来说更像是学习“更清洁”的方法。因此,我愿意接受所有解释更清晰、更正确方法的建议。
查看完整描述

1 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

您可以在catch块中处理这两种错误情况,这使您的“快乐路径”代码更清晰一些,并将所有错误处理整齐地分组在一个地方:


try:

    msg_json = json.loads(message_string)

    return (msg_json["task"], msg_json)

except KeyError:

    logger.error(

        "Could not parse message: must provide 'task' property",

        extra={"message_string": message_string},

    )

    return empty

except Exception:

    logger.exception(

        "Error parsing JSON message. Did you accidentally double-escape it?",

        extra={"message_string": message_string},

    )

    return empty


查看完整回答
反对 回复 2022-12-20
  • 1 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号