2010-11-17 12 views
1

Dans mon programme, j'ai une méthode qui gère toutes les erreurs. Quelque chose comme çaComment puis-je extraire une condition de défaillance dans Twisted

def _processError(self, failure): 
    ''' Process various errors ''' 
    if isinstance(failure, Failure): 
     error = failure.trap(SASLAuthError, StanzaError) 
     if error == SASLAuthError: 
      self.notifyObservers(error = 'authorization') 
     elif error == StanzaError: 
      self.notifyObservers(error = 'subscription') 

J'ai besoin de mettre en œuvre des informations plus spécifiques sur les défaillances (condition). Une façon consiste à appeler getErrorMessage et à analyser une chaîne. Mais ce n'est pas très bon en raison de la possibilité de changer le format d'erreur dans Twisted. Quelqu'un a-t-il une idée?

+1

Ce que vous demandez n'est pas clair. –

+0

désolé pour une mauvaise explication. J'ai déjà résolu ce problème. Condition peut être prise par failure.value.condition –

+1

Vous avez un code réalisable pour votre question [ici] (http://stackoverflow.com/questions/8181990/twisted-how-to-get-error-parameters-from-failure) Mais je ne sais pas si c'est vraiment la bonne façon. – Vasiliy

Répondre

1

Vous devez utiliser les chaînes callback et errback (avec le module d'aide twisted.internet.defer) pour gérer les conditions d'erreur lors de la programmation avec twisted.

Questions connexes