diff --git a/datamaxi/_dispatch.py b/datamaxi/_dispatch.py index f43c2eb..b3b39cb 100644 --- a/datamaxi/_dispatch.py +++ b/datamaxi/_dispatch.py @@ -71,11 +71,11 @@ def raise_for_error(status_code, text, headers): try: err = json.loads(text) except JSONDecodeError: - raise ClientError(status_code, text, None, headers) + raise ClientError(status_code, text, None, headers) from None error_data = None if "data" in err: error_data = err["data"] - raise ClientError(status_code, err["error"], headers, error_data) + raise ClientError(status_code, err.get("error", text), headers, error_data) raise ServerError(status_code, text) diff --git a/datamaxi/error.py b/datamaxi/error.py index 357fefa..71e38ce 100644 --- a/datamaxi/error.py +++ b/datamaxi/error.py @@ -12,12 +12,14 @@ def __init__(self, status_code, error_message, header, error_data=None): self.header = header # return data if it's returned from server self.error_data = error_data + super().__init__(f"{status_code}: {error_message}") class ServerError(Error): def __init__(self, status_code, message): self.status_code = status_code self.message = message + super().__init__(f"{status_code}: {message}") class ParameterRequiredError(Error): diff --git a/datamaxi/lib/utils.py b/datamaxi/lib/utils.py index 3e71ffe..d51fd84 100644 --- a/datamaxi/lib/utils.py +++ b/datamaxi/lib/utils.py @@ -45,7 +45,7 @@ def check_at_least_one_set_parameters(params): check_required_parameter(p[0], p[1]) at_least_one_set = True break - except: # noqa: E722 + except ParameterRequiredError: pass if not at_least_one_set: