exceptions.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. # -*- coding: utf-8 -*-
  2. # !/usr/bin/env python
  3. from __future__ import absolute_import, unicode_literals
  4. import six
  5. from typing import Optional
  6. from library import to_binary, to_text
  7. from .base import DlbErrorCode
  8. class DlbException(Exception):
  9. def __init__(self, errorCode, errorMsg, client = None, request = None, response = None):
  10. self.errCode = errorCode
  11. self.errMsg = errorMsg
  12. self.client = client
  13. self.request = request
  14. self.response = response
  15. super(DlbException, self).__init__(errorMsg)
  16. def __str__(self):
  17. if self.client:
  18. _repr = '{kclass}(client: {client}, errCode: {errCode}, errMsg: {errMsg})'.format(
  19. kclass = self.__class__.__name__,
  20. client = repr(self.client),
  21. errCode = self.errCode,
  22. errMsg = self.errMsg)
  23. else:
  24. _repr = '{kclass}(errCode: {errCode}, errMsg: {errMsg})'.format(
  25. kclass = self.__class__.__name__,
  26. errCode = self.errCode,
  27. errMsg = self.errMsg)
  28. if six.PY2:
  29. return to_binary(_repr)
  30. else:
  31. return to_text(_repr)
  32. def __repr__(self):
  33. return str(self)
  34. class DlbPayException(DlbException):
  35. pass
  36. class DlbValidationError(DlbException):
  37. def __init__(self, errmsg, lvalue, rvalue, client = None):
  38. # type: (basestring, basestring, basestring, Optional[object])->None
  39. super(DlbValidationError, self).__init__(
  40. errorCode = str(DlbErrorCode.MY_VALID_ERROR),
  41. errorMsg = '{}({} != {})'.format(errmsg, lvalue, rvalue),
  42. client = client)