57 lines
1.5 KiB
Python

from .request import TeaRequest
class TeaException(Exception):
def __init__(self, dic):
self.code = dic.get("code")
self.message = dic.get("message")
self.data = dic.get("data")
self.description = dic.get("description")
self.accessDeniedDetail = dic.get("accessDeniedDetail")
if isinstance(dic.get("data"), dict) and dic.get("data").get("statusCode") is not None:
self.statusCode = dic.get("data").get("statusCode")
def __str__(self):
return f'Error: {self.code} {self.message} Response: {self.data}'
class ValidateException(Exception):
pass
class RequiredArgumentException(ValidateException):
def __init__(self, arg):
self.arg = arg
def __str__(self):
return f'"{self.arg}" is required.'
class RetryError(Exception):
def __init__(self, message):
self.message = message
self.data = None
class UnretryableException(TeaException):
def __init__(
self,
request: TeaRequest,
ex: Exception
):
self.last_request = request
self.inner_exception = ex
if isinstance(ex, TeaException):
super().__init__({
'code': ex.code,
'message': ex.message,
'data': ex.data
})
else:
super().__init__({
'message': repr(ex),
})
def __str__(self):
return str(self.inner_exception)