exceptions.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. # -*- coding: utf-8 -*-
  2. # !/usr/bin/env python
  3. from typing import Optional
  4. from library.jd import JDErrorCode
  5. class JDException(Exception):
  6. def __init__(self, errCode, errMsg, client = None,
  7. request = None, response = None):
  8. super(JDException, 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 JDNetworkException(JDException):
  30. pass
  31. class JDRequestException(JDException):
  32. pass
  33. class JDSignError(JDException):
  34. pass
  35. class JDValidationError(JDException):
  36. def __init__(self, tips, lvalue, rvalue, client = None):
  37. # type: (basestring, basestring, basestring, Optional[object])->None
  38. super(JDValidationError, self).__init__(
  39. errCode = str(JDErrorCode.MY_VALID_ERROR),
  40. errMsg = tips,
  41. client = client)
  42. self.lvalue = lvalue
  43. self.rvalue = rvalue
  44. def __repr__(self):
  45. return '{}({} != {})'.format(self.errMsg, self.lvalue, self.rvalue)
  46. class JDParameterError(JDException):
  47. pass