leere Fehlermeldung in Python

8

Ich versuche, einen Fehler zu debuggen, ich bekam eine "keine Ausnahme", wenn ich es anfänglich ausgeführt habe und später einen try / except-Block einsetzte, um den Fehler auszudrucken.

%Vor%

Dies erzeugt eine leere Zeile der Ausgabe, irgendwelche Ideen, was es sein könnte?

EDIT: Sorry, hatte gehofft, es gab einen bestimmten Grund, dass die Fehlermeldung leer sein könnte. Es gibt keine Stack-Trace-Ausgabe, was dazu führte, dass ich gezwungen wurde, einen try / except-Block auf den ersten Platz zu setzen. Ich programmiere immer noch dieses Ding, also lasse ich den "Compiler" erst jetzt die Fehler abfangen. Der eigentliche Code, der den Fehler verursacht, ist in einer Django-App, so dass er einige Funktionen von Django hat.

%Vor%

Dies ist Code in einer Ansichtsfunktion. jobIDs ist ein Dict, das Werteschlüsselpaare im Format ## Selection: ## (also 17Selection: 17) enthält. Tut mir leid, ich habe vergessen, dies zu veröffentlichen.

EDIT: repr (e) hat mir TypeError () gegeben, was besser ist als nichts zu wissen.

    
avorum 18.06.2013, 20:21
quelle

4 Antworten

9

Dies bedeutet, dass für die Ausnahme keine Nachricht angehängt ist. Drucken Sie die Ausnahme type :

%Vor%

Sie können auch die Traceback-Funktion drucken:

%Vor%

Sie möchten vermeiden fangen BaseException ab, dies ist jedoch nicht besser als eine pauschale except: -Anweisung. Fangen Sie stattdessen spezifischere Ausnahmen ein.

    
Martijn Pieters 18.06.2013 20:25
quelle
4

Folgendes erzeugt eine leere Ausgabezeile:

%Vor%

Verwenden Sie repr(e) , um zu sehen, welche Ausnahme ausgelöst wurde.

    
Andrew Clark 18.06.2013 20:25
quelle
4

Versuchen Sie es mit:

%Vor%

Dies scheint am einfachsten zu verstehen und affektiv zu sein.

    
D4zk1tty 18.06.2013 20:28
quelle
1

Legen Sie den try / except-Block um kleinere Codeabschnitte, bis Sie die problematische Zeile gefunden haben. Zum Beispiel, wenn Sie:

%Vor%

Ändern Sie dann zu:

%Vor%     
Chris Barker 18.06.2013 20:25
quelle

Tags und Links