error.py 960 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. # -*- coding: utf-8 -*-
  2. """
  3. walle-web
  4. :copyright: © 2015-2019 walle-web.io
  5. :created time: 2018-11-17 21:42:23
  6. :author: wushuiyong@walle-web.io
  7. """
  8. from flask import current_app, jsonify
  9. from walle.service.code import Code
  10. class WalleError(Exception):
  11. # 默认的返回码
  12. code = Code.unlogin
  13. message = None
  14. def __init__(self, code, message=None):
  15. Exception.__init__(self)
  16. if code is not None:
  17. self.code = code
  18. if message is not None:
  19. self.message = message
  20. def render_error(self):
  21. if self.code not in Code.code_msg:
  22. current_app.logger.error('unknown code %s' % (self.code))
  23. current_app.logger.error(self, exc_info=1)
  24. if self.code in Code.code_msg:
  25. self.message = Code.code_msg[self.code]
  26. return jsonify({
  27. 'code': self.code,
  28. 'message': self.message,
  29. 'data': None,
  30. })