Frage

Ich brauche zu standardisieren, wie ich zu klassifizieren und zu handhaben Fehler / Ausnahmen ‚anmutig‘.

Ich verwende derzeit ein Verfahren, mit dem ich die Fehler in einer Funktion Fehler melden Nummer, Schwere-Code, Standort-Informationen und extra-info-String übergeben. Diese Funktion gibt boolean true, wenn der Fehler fatal ist und die App sollte, andernfalls false sterben. Als Teil davon Prozess ist, abgesehen von visual-Feedback an den Benutzer, auch die Funktion log-in-Datei-Fehler von über einem bestimmten Schweregrad-Ebene.

Fehlernummer Indizes ein Array von Strings die Art des Fehlers zu erklären, zum Beispiel: ‚Dateizugriff‘, ‚Benutzereingabe‘, ‚Thema-creation‘, ‚Netzzugang‘ usw. Severity-Code ist binär oder von 0 , 1,2 oder 4, 0 = informativ, 1 = user_retry, 2 = cannot_complete, 4 = cannot_continue. Location-Info ist Modul & Funktion und Extra-Info wird Parameter- und lokale Variablenwerte.

Das mag ich in eine standardisierte Möglichkeit der Fehlerbehandlung machen, dass ich in einer Bibliothek und Wiederverwendung in all meinen apps setzen kann. Ich hauptsächlich verwenden C / C ++ unter Linux, würde aber die resultierende Bibliothek mit anderen Sprachen / Plattformen als auch nutzen will.

  • Eine Idee ist es, den Fehler-Typen zu verlängern Array, um anzuzeigen, einige Standards Verhalten für eine Schwere-Ebene gegeben, aber sollte dies dann werden die Maßnahmen ergriffen und geben keine Optionen der Benutzer?

  • Oder: sollte eine solche Verlängerung sein ein Unterarray von Optionen, die der Benutzer müssen zur Auswahl? Das Problem mit ist, dass die Optionen würden von Notwendigkeit verallgemeinert werden Optionen Programmierung bezogenen Das mag sehr gut-vollständig ein Leitblech Endbenutzer.

  • Oder: sollte jede App, die verwendet die Fehler-Routine übergeben lib entlang ihrer eigenen Array von entweder Fehler oder Standard Verhalten - aber dies wird die Niederlage Zweck der Bibliothek ...

  • Oder: sollten die Schwere-Ebene sein in jeder App behandelt?

Oder: Was schlagen Sie vor? Wie gehen Sie mit Fehlermeldung? Wie kann ich verbessern das?

War es hilfreich?

Lösung

Wie Sie die Fehler wirklich hängt von der Anwendung.Verfahren Webanwendung Griff hat einen anderen Fehler-Catching-Mechanismus als eine Desktop-Anwendung, und diese beiden unterscheiden sich drastisch auf ein asynchrones Messaging-System.

Dass die eine gängige Praxis bei der Fehlerbehandlung wird gesagt ist es auf dem niedrigstmöglichen Niveau zu behandeln, in denen sie behandelt werden können. Dies bedeutet in der Regel die Anwendungsschicht oder die GUI.

Ich mag die Schweregrade. Vielleicht können Sie verschiedene Fehlerausgabe Anbieter und Schweregrad Anbieter eine steckbare Fehler-Sammlung Bibliothek mit.

Output-Provider könnten Dinge wie ein logginProvider und IgnoreErrorsProvider umfassen. Schwerer Anbieter würde wahrscheinlich etwas von jedem Projekt umgesetzt werden, da Schweregrade werden in der Regel durch diese Art von Projekt bestimmt, in dem sie auftritt. (Zum Beispiel Netzwerkverbindungsprobleme sind schwerwiegender für eine Bankanwendung als bei einem Kontakt-Management-System).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top