exceptions.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. # -*- coding: utf-8 -*-
  2. # !/usr/bin/env python
  3. from typing import Optional
  4. from .base import SaobeiErrorCode
  5. class SaobeiException(Exception):
  6. def __init__(self,
  7. return_code,
  8. return_msg,
  9. result_code = '',
  10. client = None,
  11. request = None,
  12. response = None):
  13. super(SaobeiException, self).__init__()
  14. self.return_code = return_code
  15. self.return_msg = return_msg
  16. self.result_code = result_code
  17. self.client = client
  18. self.request = request
  19. self.response = response
  20. def __str__(self):
  21. return '{kclass}(client: {client}, return_code: {return_code}, return_msg: {return_msg}, result_code: {result_code})'.format(
  22. kclass = self.__class__.__name__,
  23. client = repr(self.client),
  24. return_code = self.return_code,
  25. return_msg = self.return_msg,
  26. result_code = self.result_code)
  27. def __repr__(self):
  28. return str(self)
  29. @property
  30. def tip(self):
  31. return '{}({})'.format(self.return_msg, self.return_code)
  32. class SaobeiSignatureError(SaobeiException):
  33. def __init__(self, lvalue, rvalue, client = None):
  34. super(SaobeiSignatureError, self).__init__(
  35. return_code = str(SaobeiErrorCode.MY_ERROR_SIGNATURE),
  36. return_msg = u'签名不一致({} != {})'.format(lvalue, rvalue),
  37. client = client)
  38. class SaobeiValidationError(SaobeiException):
  39. def __init__(self, errmsg, lvalue, rvalue, client = None):
  40. # type: (basestring, basestring, basestring, Optional[object])->None
  41. super(SaobeiValidationError, self).__init__(
  42. return_code = str(SaobeiErrorCode.MY_VALID_ERROR),
  43. return_msg = '{}({} != {})'.format(errmsg, lvalue, rvalue),
  44. result_code = '',
  45. client = client)