# -*- coding: utf-8 -*- # !/usr/bin/env python from typing import Optional from library.jd import JDErrorCode class JDException(Exception): def __init__(self, errCode, errMsg, client = None, request = None, response = None): super(JDException, self).__init__(errMsg) self.errCode = errCode self.errMsg = errMsg self.client = client self.request = request self.response = response def __str__(self): if self.client: _repr = '{klass}(client: {client}, errCode: {errCode}, errMsg: {errMsg})'.format( klass = self.__class__.__name__, client = repr(self.client), errCode = self.errCode, errMsg = self.errMsg) else: _repr = '{klass}(errCode: {errCode}, errMsg: {errMsg})'.format( klass = self.__class__.__name__, errCode = self.errCode, errMsg = self.errMsg) return _repr def __repr__(self): return str(self) class JDNetworkException(JDException): pass class JDRequestException(JDException): pass class JDSignError(JDException): pass class JDValidationError(JDException): def __init__(self, tips, lvalue, rvalue, client = None): # type: (basestring, basestring, basestring, Optional[object])->None super(JDValidationError, self).__init__( errCode = str(JDErrorCode.MY_VALID_ERROR), errMsg = tips, client = client) self.lvalue = lvalue self.rvalue = rvalue def __repr__(self): return '{}({} != {})'.format(self.errMsg, self.lvalue, self.rvalue) class JDParameterError(JDException): pass