Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
snafu hat geschrieben:Huch, ich hab irgendwie immer an Nutella gedacht, wenn ich deinen Namen gelesen habe...
Seinen Ursprung hat mutetella tatsächlich in Nutella. Aber das ist eine andere Geschichte aus einer anderen Zeit...
Vielleicht bist du ja auch eine "stille Ella" (muted Ella) in etwas anderer Schreibweise - wer weiß...
mutetella hat geschrieben:
snafu hat geschrieben:@Erschwerte Fehlersuche: Man könnte ja per Option auswählen, ob Fehler sofort geworfen werden oder ob sie erst am Ende gesammelt ausgegeben werden sollen.
mutetella hat geschrieben:Darum dachte ich halt eher an "so ein Ding", das einen bestimmten Zustand erhält und fortgeführt werden kann, damit am Ende der ganzen Argumentprüferei quasi ein Zusammenzählen der verschiedenen Fehlerkombinationen zu einer Fehlermeldung a la "Eine jährliche Wiederholung benötigt das Argument `month`. Zudem fehlt dem `weekday` Argument das Positionspräfix." führen kann.
Und was bitte schön an meiner Lösung widerspricht Deinen Anforderungen
Nee, ich meinte eher eine Fehlermeldung mit allgemein gehaltenem Text und dann halt ein Attribut wie `.errors`, damit bei Bedarf sozusagen die Details von der Exception abgefragt werden können. Das Darstellen für die CLI-Ebene würde ich in eine Hilfsfunktion auslagern (`get_error_message(exc)` oder sowas in der Art). Diese Hilfsfunktion würde halt die spezielle Exception erwarten und einen hübschen Fehlertext und Zuhilfenahme des `.errors`-Attributs generieren, welcher als mehrzeiliger String zurückgeliefert wird. Anwendung für die CLI-Ebene wäre dann:
Das letztendliche Auslösen der exception ist glaube ich nicht mein Problem, sondern das Einsammeln der Fehler über die verschiedenen Namensräume hinweg. Wenn `errors` ein Attribut meiner Fehlerklasse sein soll, wie befülle ich das dann bzw. wo erstelle ich die Instanz, damit ich deren `errors` Attribut in den diversen ``try:...except:...`` Blöcken ansprechen kann?
Was ist jetzt so schwer daran, eine Fehlerliste zu führen und diese Fehlerliste bei eventuell auftretenden Fehlern zu befüllen? Am Ende der Funktion steht dann noch ein: