0
我需要一點點幫助理解,我有使用Python 2.7.11用戶定義的異常問題。Python的用戶定義的異常處理
我有兩個文件main.py和myErrors.py。在主要我發佈的數據和接收響應,並在myErrors我處理這些錯誤。
我想要做的是在嘗試執行版本錯誤:除了語句,但甚至認爲它應該是它沒有得到執行。我在做什麼是我傳給myErrors和更新數據字典中的錯誤file.-
我的問題是嚴重的措辭迴應。我想要做的是,將響應傳遞給錯誤處理程序,但我不想執行它,直到我們遇到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
任何幫助,非常感謝。
是啊,我想我的問題是嚴重的措辭。 我想要做的是爲傳遞到錯誤處理程序的響應,但我不希望執行它,直到我們得到了嘗試:除了條款。 所以,當我們得到的迴應,如果它不成功,則檢查錯誤代碼並引發異常。 現在我正在做的是先檢查錯誤,然後執行成功檢查(錯誤代碼) –