Витая: как получить параметры ошибки при сбое? - PullRequest
2 голосов
/ 18 ноября 2011

У меня есть код:

from twisted.web.client import getPage
from twisted.internet import reactor

class TestError(Exception):
    def __init__(self, message):
        self.message = message
    def __repr__(self):
        return 'TestError'

def gotPage(response):
    print response
    reactor.stop()

def gotErr(failure):
    raise TestError('This is error')

def newEb(failure):
    try:
        failure.raiseException()
    except TestError as te:
        print te.message
    reactor.stop()

if __name__ == '__main__':
    deferred = getPage('http://somebadpage.net', method='GET')
    deferred.addCallback(gotPage)
    deferred.addErrback(gotErr)
    deferred.addErrback(newEb)
    reactor.run()

Является ли способ, представленный в newEb, единственным способом извлечь параметры ошибки из сбоя? Когда я использую fail.trap или fail.check, я не могу получить экземпляр ошибки.

1 Ответ

1 голос
/ 18 ноября 2011

Если под параметрами ошибки вы подразумеваете экземпляры исключений, то Failure.value.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...