2016-03-29 3 views
-1

Ich bin neu in Python und einige Probleme mit der Ausnahmebehandlung konfrontiert.Handle Python Ausnahme funktioniert nicht

Wenn ich einen Socket erstellen und ihn mit einer IP/Port verbinden, möchte ich die Socket-Ausnahmen behandeln und keine Python-Fehler auf der Konsole anzeigen. Ich habe das mit Hilfe von try and except gemacht.

try: 
     self.create_socket(socket.AF_INET, socket.SOCK_STREAM) 
     self.connect((self.host, self.port)) 
    except error: 
     print 'Socket Error' 

Aber ich immer noch der Fehler auf der Konsole gedruckt werden

error: uncaptured python exception, closing channel <SClient 20.0.0.1:5000 at 0x7fe94e0e2e18> (<class 'socket.error'>:[Errno 111] Connection refused [/usr/lib/python2.7/asyncore.py|read|83] [/usr/lib/python2.7/asyncore.py|handle_read_event|446] [/usr/lib/python2.7/asyncore.py|handle_connect_event|454]) 

Beratung Bitte

+0

'except error' sollte Ihnen einen Fehler über den Fehler geben, der nicht definiert wird ... versuchen Sie einfach' außer: 'es ist verpönt, sollte aber funktionieren –

+0

Ich versuchte außer: auch. Aber es zeigt immer noch den Fehler. –

+0

Zuallererst muss Ihre Ausnahme-Klausel mit dem Versuch ausgerichtet werden. Sie haben den Fehler nicht identifiziert. Also, führen Sie den Code ohne den Versuch, und wenn es fehlschlägt, notieren Sie den Fehler, der ausgelöst wurde, dann setzen Sie den Versuch und außer mit dem tatsächlichen Fehlertyp –

Antwort

0
try: 
    a == b 
except Exception as e: 
    print "error: %s"%(e) 

Verwenden Sie dieses Format.

+0

Es funktioniert. Vielen Dank –