Re: Exception werfen (Controller und Webservice)
"Tim Becker" <[email protected]> Fri, 23 Feb 2007 13:29:21 +0100
| Newsgroups | gmane.comp.lang.ruby.german |
|---|---|
| Message-ID | <[email protected]> |
> > Im Controller wird eine Methode abgearbeite in der eine Exception auftret= en > kann. > > def methode > begin > . > . > rescue =3D> exc > > end > end > > In dem rescue soll jetzt das Exception handling passieren. > Ich hab es mit Exception.new(exc) versucht. Die Ruby Exception steckt schon in `exc` drin, Du brauchst die nicht mehr zu wrappen. Anhand Deines Beispiels laesst sich aber leider nicht erkennen, wo die Exception entsteht. Wenn kein Fault von dem webservice geliefert wird, wird natuerlich auch in Ruby kein SOAP fault entstehen. Wenn Du in dem rescue Block Dir mal den Wert von `exc.class` ausgeben laesst, solltest Du sehen, ob die Exception eine "SOAP::FaultError" ist oder nicht. Ansonsten kannst Du Dir mit `exc.backtrace` anzeigen lassen, wo die Exception ueberhaupt entsteht. > Das Ergebniss was ich bekommme ist das der R=FCckgabestring vom Webservic= e die > Message von der Exception enth=E4lt. Was ich aber m=F6chte ich das ich ei= ne > soapfault zur=FCck bekomme. Was genau verstehst Du unter "soapfault"? Du moechtest an der Stelle die reine XML Darstellung der SOAP Nachricht erhalten, oder eine Ruby Exception, die SOAP Fehler abbildet? Ich vermute. dass es sich beim dem "Rueckgabestring" tatsaechlich um ein `SOAP::FaultError` handelt, aber wenn Du den einfach mit `puts` ausgibst, wird nur die Fehlermeldung angezeigt. Wie gesagt, mit `exc.class` kannst Du ermitteln, ob es sich tatsaechlich nur um einen String handelt. >Hab leider auch noch nichts gefunden was mir sagt > ob es einen soapfaul =FCberhaupt in Ruby oder Ruby on Rails gibt. Ich wei= =DF nur > das es bei Java geht. http://www.ruby-doc.org/stdlib/libdoc/soap/rdoc/classes/SOAP/FaultError.html http://www.ruby-doc.org/stdlib/libdoc/soap/rdoc/index.html Die soap4r Doku ist furchtbar. Passt irgendwie zu SOAP an sich... Gruss, -tim