处理 python 错误的最佳实践

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 empty

except Exception:

    logger.exception(

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

        extra={"message_string": message_string},

    )

    return empty

我有这段代码,我试图加载一些 JSON 格式的消息字符串。回顾这段代码后,我觉得我可能以错误的方式使用 try 和 catch,并且我正在寻找建议,因为我是 python 的新手,可能会有更简洁的方法。这里没有错误,但这对我来说更像是学习“更清洁”的方法。因此,我愿意接受所有解释更清晰、更正确方法的建议。


慕妹3242003
浏览 98回答 1
1回答

largeQ

您可以在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 emptyexcept Exception:    logger.exception(        "Error parsing JSON message. Did you accidentally double-escape it?",        extra={"message_string": message_string},    )    return empty
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python