2016-08-10 7 views
0

Zur Zeit habe ich den folgenden Code:Einstellung Nachricht für benutzerdefinierte Ausnahme in Django

Definition meiner selbst definierten Ausnahmeklasse:

class BusinessLogicError(Exception): 
    def __init__(self, message): 
     self.value = message 
    def __str__(self): 
     return repr(self.message) 

anzeigen Code-Schnipsel (vereinfacht)

try: 
    raise BusinessLogicError('This is my error message') 
except BusinessLogicError, e: 
    print str(e) 

Das Problem ist, dass dieser Code ohne Fehler funktioniert, aber ich bekomme leere Zeichenfolge auf der Konsole gedruckt, wenn print str(e) ausgeführt wird. Stattdessen würde ich erwarten, es This is my error message zu rendern. Was mache ich falsch ? Ist der Fehler in der Definition der Ausnahmeklasse?

Antwort

1

Sie haben in jeder Methode unterschiedliche Attributnamen verwendet. Sie sollten sie konsistent machen; Verwenden Sie entweder self.value oder self.message.

+0

Daniel, ein bisschen off-topic. Gibt es eine weit verbreitete Methode, den Fehlercode auch in die Fehlerdefinition aufzunehmen? –

+0

Fehlerstatus, ich meine (400, 500, etc ...) –

Verwandte Themen