我需要一些帮助来理解我在python 2.7.11中使用用户定义的异常的问题。
我有两个文件 main.py 和 myErrors.py .in main 我发布数据并收到回复并且在 myErrors 我处理错误。
我要做的是在try:except语句中执行版本错误,但即使它应该是也不会执行。我正在做的是我将响应传递给myErrors并将该数据更新到错误文件中的字典.-
我的问题很严厉。我想要做的是,将响应传递给错误处理程序,但我不想执行它,直到我们到达on_response方法中的Try:except子句。因此,当我们得到响应并且它不成功时,请检查错误代码并引发异常。现在我正在做的是先检查错误,然后执行成功检查(错误代码)
这是主要
def send_messages(self):
response = cm.postData(url=simulateSasServer, jsondata=json_data)
self.on_response(response)
def on_response(self, response):
myERRORS.myERRORS(response)
# if registration is succesful change state to REGISTERED.
if 'registrationResponse' in response:
try:
responseObjects = response['registrationResponse']
for responseObject in responseObjects:
if responseObject['error']['errorCode'] == 0:
do_action
except myErrors.Version():
raise ("version_message")
这是 myErrors
class myERRORS(Exception):
error_code = {'SUCCESS': 0,
'VERSION': 100,
}
response_data = {}
def __init__(self, response):
self.response_data.update(response)
class Version(myERRORS):
def __init__(self):
self.name = "VERSION"
self.err_code = self.error_code['VERSION']
self.msg = "SAS protocol version used by CBSD is not supported by SAS"
self.version_error()
if self.version_error() is True:
print (self.name, self.err_code, self.msg)
raise Exception(self.name, self.err_code, self.msg)
def version_error(self):
response_objects = self.response_data.values()[0]
if 'registrationResponse' in self.response_data:
for r_object in response_objects:
if r_object['error']['errorCode'] == self.error_code['VERSION']:
return True
非常感谢任何帮助。
答案 0 :(得分:0)
关于例外并没有什么特别之处。他们是班级。你所做的是创建一个类的实例。你没有提出它。变化:
myERRORS.myERRORS(response)
为:
raise myERRORS.myERRORS(response)