J'essaie d'élever un code de python. Le Merci d'avance. P> __ init __ code> méthode \ constructeur prend trois arguments
__ init __ (auto, défaut, document) code>. La défaillance a défaillance.FaultCode et défaillance.Detail Membres \ Attributs \ Propriétés. Je ne pouvais pas découvrir quelle faute de classe n'appartient à aucun mateste ce que j'ai essayé. Comment puis-je élevonner l'exception de type STDS.WebFault à partir du code Python? P>
3 Réponses :
Vous ne savez pas exactement ce que vous demandez exactement, mais vous pouvez lancer une faute Web à l'aide de:
import suds try: client.service.Method(parameter) except suds.WebFault, e: print e
Pas du tout ce qui est demandé.
C'est en fait la manière dont vous attrapez un Webfault code>, pas comment vous lancez / enlevez un.
Webfault est uniquement destiné à être réellement soulevé lorsqu'un élément Si vous souhaitez toujours, je commencerais à regarder le code où le cadre le soulève: https://github.com/unomena/suds/blob/4e90361e13fb3d74915fc798e0e/suds/bindings/binding.py#l182 - et travailler à l'arrière de là. P>
Webfault est défini dans Par conséquent, pour élever une webfault avec un message significatif dont vous aurez besoin de passer un objet comme le premier param avec le message. Le document peut simplement être SUDS .__ init __. py code> comme:
Aucun code> sauf si nécessaire. P>
import suds
class Fault(object):
faultstring = 'my error message'
raise suds.WebFault(Fault(), document=None)
Grande réponse merci. Pour référence, je dois le faire dans un système simulé pour émuler une erreur de traitement de serveur générique.
La réponse de Chrissy Gormley travaille pour moi. Si cela fonctionne pour vous, veuillez cocher le savoir.