После долгого googli поиска, чтобы выяснить, что происходит, вот это:Python Пользовательской Обработка исключений
У меня есть исключение проверки пользовательского который принимает запрос и ответ
class ValidationException(Exception):
message = "Caught Validation Exception"
def __init__(self, request, response):
self.details = {
"request": request,
"response": response
}
super(ValidationException, self).__init__(self.message, self.details)
У меня есть обработчик исключений который поднимет его экземпляр некоторого условия:
class handler:
if something:
raise ValidationException(request, response)
обработчик вызывается в случае мы сталкиваемся вопрос в посте
class Poster:
def post(data):
if self.last_response.status_code not in self.valid_post_codes:
self.exception_handler.handleException(self.last_request, self.last_response)
Проблема в том, что я поднимаю исключение ValidationException, получая его в своем следе, но, похоже, он не попадает туда, где я его хочу.
def testThis(self):
try:
self.poster.post(json.dumps({}))
except ValidationException:
print "got validation"
except Exception:
print "got exception"
Результат: "получил исключение"
обратное прослеживание
lib/service/pas/api/order.py line 24 in postOrder
return self.post()
lib/service/base.py line 42 in post
self.exception_handler.handleException(self.last_request, self.last_response)
lib/service/exception/handler.py line 14 in handleException
raise ValidationException(request, response)
ValidationException:
За что его ценность:
assertRaises(ValidationException, self.poster.post, json.dumps({}))
только ловит исключение, а также. Есть идеи? : \ Любая помощь очень ценится! Заранее спасибо
Большое спасибо за помощь! – mikeyseay