2016-12-08 6 views
0

ist es eine Möglichkeit, Code wie dieseentfernen versuchen, außer: Pass Block in Python

try: 
# some code 
# ... 
except:pass 

nur auf den Code innerhalb des try Blockes zu entfernen?

Der Grund ist der vorherige Entwickler schreiben, wo jeder Code dies (es mehr als 1000 Zeilen und mehrere Dateien), so dass jeder Fehler im Code nicht ausgedruckt werden kann.

Ich versuchte manuell mit Suchen und Ersetzen zu ändern try: und except:pass zu "" aber es ist anstrengend, zu zeitaufwendig und das Problem mit Einzug.

Hilfe .. das mir Kopfschmerzen geben ...

+1

Ich fühle dich, Bruder. – Stargateur

+0

Suche und ersetze einfach für 'except: pass' und ersetze ihn durch' except Ausnahme als _uniqueName: raise _uniqueName' – Alden

+1

finde/ersetze nur 'pass' mit' except: raise' – TemporalWolf

Antwort

1

Nur except:pass mit except:raise finden/ersetzen, wenn Sie einen aktuellen Fehler beheben müssen.

Obwohl Sie schließlich in den sauren Apfel beißen müssen und den Code tatsächlich beheben müssen.

+0

ja, aber es ist besser, wenn wir das Geschoss nicht unwissentlich bluten fühlen ... –

+0

@whale_steward Ich stimme zu. Ich denke, Python-IDEs/Compiler sollten die Verwendung von 'except: pass' warnen/verbieten, es sei denn, Sie geben den Fehler an:' except KeyError: pass'. Das ist völlig in Ordnung. – TemporalWolf

1

Optionen variieren etwas, je nachdem, welche IDE und OS Sie verwenden. Hier ist eine Methode, die auf Linux- und Mac-Varianten funktionieren sollte.

grep -r "except:pass" -l * | xargs sed -i .bak 's/except:pass/except: import sys; print(sys.exc_info()[0])/g'

Die grep findet jede Datei „außer: pass“ enthält im aktuellen Ordner oder Unterordner, dann übergibt diese Liste von Dateien zu sed, das mit einer allgemeinen Ausnahme print-Anweisung, die nicht hilfreich Code ersetzt.

Verwandte Themen