exceptions.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. # -*- coding: utf-8 -*-
  2. # !/usr/bin/env python
  3. from typing import Optional
  4. from library.jdopen import JDOpenErrorCode
  5. class JdOpenException(Exception):
  6. def __init__(self, errCode, errMsg, client = None,
  7. request = None, response = None):
  8. super(JdOpenException, self).__init__(errMsg)
  9. self.errCode = errCode
  10. self.errMsg = errMsg
  11. self.client = client
  12. self.request = request
  13. self.response = response
  14. def __str__(self):
  15. if self.client:
  16. _repr = '{klass}(client: {client}, errCode: {errCode}, errMsg: {errMsg})'.format(
  17. klass = self.__class__.__name__,
  18. client = repr(self.client),
  19. errCode = self.errCode,
  20. errMsg = self.errMsg)
  21. else:
  22. _repr = '{klass}(errCode: {errCode}, errMsg: {errMsg})'.format(
  23. klass = self.__class__.__name__,
  24. errCode = self.errCode,
  25. errMsg = self.errMsg)
  26. return _repr
  27. def __repr__(self):
  28. return str(self)
  29. class JDOpenValidationError(JdOpenException):
  30. def __init__(self, tips, lvalue, rvalue, client = None):
  31. # type: (basestring, basestring, basestring, Optional[object])->None
  32. super(JDOpenValidationError, self).__init__(
  33. errCode = str(JDOpenErrorCode.MY_VALID_ERROR),
  34. errMsg = '{}({} != {})'.format(tips, lvalue, rvalue),
  35. client = client)