设计代码以处理泛型函数处理的特定错误消息

2024-04-20 03:00:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python的初学者,但我提到了几个与Python中单独处理错误消息相关的问题,并且还阅读了引发异常的最佳实践。然而,当使用单个函数处理/验证错误时,处理错误消息更像是一个设计问题

有单独的函数进行不同的API调用。为了处理响应,所有这些函数都使用以下通用函数:

def print_if_error_and_exit(response, debug, message_override_map=None, exit_on_failure=True):
    if hasattr(response, 'status') and (response.status < 200 or response.status >= 300):
        overriden_message = message_override_map.get(response.status) if message_override_map else None
        if overriden_message:
            error_message = overriden_message
        elif hasattr(response, 'message'):
            error_message = response.message
        else:
            error_message = 'No error message found'

        if exit_on_failure:
            print_error_message('Error (HTTP {0}): {1}'.format(response.status, error_message))
            if debug:
                print_error_message(repr(response))
            sys.exit(1)
        else:
            raise ResponseException(error_message)

现在,我们希望保留这个函数,但同时也能够提供定制的、特定于API的、人性化的错误消息。一种方法是使用dict调用此函数,该函数可以获取HTTP状态码和相应的自定义消息。然而,这可能不是最好的办法,我想知道是否有更好的办法来实现这一目标


Tags: 函数消息mapmessageifresponsestatus错误