# -*- coding: utf-8 -*- # !/usr/bin/env python from typing import Optional from .base import SaobeiErrorCode class SaobeiException(Exception): def __init__(self, return_code, return_msg, result_code = '', client = None, request = None, response = None): super(SaobeiException, self).__init__() self.return_code = return_code self.return_msg = return_msg self.result_code = result_code self.client = client self.request = request self.response = response def __str__(self): return '{kclass}(client: {client}, return_code: {return_code}, return_msg: {return_msg}, result_code: {result_code})'.format( kclass = self.__class__.__name__, client = repr(self.client), return_code = self.return_code, return_msg = self.return_msg, result_code = self.result_code) def __repr__(self): return str(self) @property def tip(self): return '{}({})'.format(self.return_msg, self.return_code) class SaobeiSignatureError(SaobeiException): def __init__(self, lvalue, rvalue, client = None): super(SaobeiSignatureError, self).__init__( return_code = str(SaobeiErrorCode.MY_ERROR_SIGNATURE), return_msg = u'签名不一致({} != {})'.format(lvalue, rvalue), client = client) class SaobeiValidationError(SaobeiException): def __init__(self, errmsg, lvalue, rvalue, client = None): # type: (basestring, basestring, basestring, Optional[object])->None super(SaobeiValidationError, self).__init__( return_code = str(SaobeiErrorCode.MY_VALID_ERROR), return_msg = '{}({} != {})'.format(errmsg, lvalue, rvalue), result_code = '', client = client)