Eigene Fehlermeldungen/Benachrichtigungen Verwalten

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Eigene Fehlermeldungen/Benachrichtigungen Verwalten

    Hallo Community,

    hoffe das ich das Thema hier im richtigen Bereich erstelle (ansonsten bitte entsprechend verschieben).

    Jetzt zu meiner Frage:

    Mich würde Interessieren, wie ihr eure Fehlermeldungen/Hinweise/Benachrichtigungen in euren Projekten verwaltet.

    Schreibt ihr diese direkt in den Code, was meiner Meinung nach sehr unübersichtlich ist (vor allem bei großen Projekten bzw. vielen Meldungen in unterschiedlichen Formen)

    C#-Quellcode

    1. MessageBox.Show("Die Textbox darf nicht leer sein! Bitte wählen Sie einen Speicherort aus", "Speicherort wählen");


    oder lagert ihr diese in eine eigene Klasse bzw. eine XML-Datei aus und greift dann darauf zu?

    Gibt es dazu eine "best practice" Lösung vlt. sogar von Microsoft?

    Ich habe schon ein bisschen zu dem Thema auf diversen Seiten geschaut, jedoch nichts wirklich brauchbares für mich gefunden.

    Viele Gruße und einen schönen Abend :)
    c-sharp
    NETworkManager - A powerful tool for managing networks and troubleshoot network problems!
    Ich denke am übersichtlichsten (so mach ich es in C++ Projekten) ist es wenn man das in eigene Klassen auslagert. Ein Beispiel wäre dann so:

    Quellcode

    1. function MyCoolError() {
    2. print("Das ist ein Fehler!");
    3. }
    4. // andere Klasse...
    5. function main() {
    6. Error.MyCoolError();
    7. }


    Sorry für den non-C# Code. Bin daran nichtmehr gewöhnt :rolleyes:
    Software being "Done" is like lawn being "Mowed". (Jim Benson)

    C-Sharp schrieb:

    "best practice"
    Wenn Du Dein rogramm mehrsprachig erstellen willst, musst Du solche Strings in die sprachabhängigen Ressourcen packen.
    Ansonsten kannst Du Dir eine Klasse erstellen und per Enum eine Meldung generieren.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke euch beiden für die schnellen Antworten.

    Ich habe bis jetzt in kleineren Projekten alle Meldungen in die MessageBox im Code geschrieben. Bei meiner letzten Anwendung habe ich versucht das meiste in eine Klasse auszulagern, war mir jedoch nie sicher ob das so "richtig" ist.
    NETworkManager - A powerful tool for managing networks and troubleshoot network problems!
    Dein Codierungsstil wird sich mit Deinen Aufgaben und Erfahrungen wandeln, irgendwann kommen noch firmeninterne Codierungsrichtlinien hinzu.
    Mach es so, wie es Dir momentan am besten gefällt. ;)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Bin im 3 Lehrjahr zum Fisi und schreib hin und wieder kleine Tools und Skripte die uns das Leben vereinfachen sollen :)

    Leider gibt es bei uns intern keine klaren Vorschriften die man da Anwenden kann und in der Berufsschule, naja sind wir mal ehrlich, lernt man da auch nicht viel.
    NETworkManager - A powerful tool for managing networks and troubleshoot network problems!
    Wie Rod schon andeutet: Eine allgemeingültige Regel gibts nicht.
    Kleine Sachen direkt im Code, und je größer das System, was damit zu tun hat, desto mehr wird sich in Resourcen verschieben müssen.

    Ein allgemeingültiger Hinweis aber doch: Vermeide solche Meldungen. Insbesondere bei Fehlermeldungen ists sehr oft hanebüchen fahrlässig, sie zu fangen und nur iwas auszugeben (was oft auch noch inhaltlich falsch ist) - ohne etwas zu haben, was ein Fortsetzen der Anwendung ühaupt ermöglichen würde.
    TryCatch ist ein heißes Eisen

    Aber auch bei sonstigen Meldungen ist Messagebox oft ein mieses Design, und nervt den User, der's wegklicken muss, um weitermachen zu können. Also auch da kann man sich gelegentlich andere Möglichkeiten des Feedbacks überlegen.
    Ich zB. spiele beim Speichern einen "Pling!" - Sound ab, statt den User mit "Ihr Blödsinn wurde erfolgreich gespeichert!"-KlickMichWeg zu nerven.

    ErfinderDesRades schrieb:

    Ich zB. spiele beim Speichern einen "Pling!" - Sound ab
    Ich hab mal für verschiedene Zustände / Antwortsituationen verschiedene markante Klänge abgespielt, da kann siech der User dem gerät widmen und muss nicht permanent auf den Screen starren. :P
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Also anstatt der MessageBox dann lieber die Informationen, wenn sie den sinn ergeben (benutzername passwort ist falsch usw.) direkt in der Form ausgeben z.B. in einem Label.
    @ErfinderDesRades mich selbst als Anwender stören auch unzählige MessageBoxen mit Infos usw.

    Denke das Thema ist erledigt. DANKE an alle für die Antworten.
    NETworkManager - A powerful tool for managing networks and troubleshoot network problems!
    wie gesagt - kein Patentrezept: Etwa für sowas eklatantes wie ein falsches LogIn würde ich dem User ganz absichtlich eine Messagebox vor den Latz knallen (also wenn das Prog eine User-Eingabe ablehnen muss).

    Für andere Meldungen bin ich scheinbar nichtmal der einzige, der ein akustisches Feedback für sehr praktisch hält.

    Was auch üblich und intuitiv ist, ist, eine Statusbar zu verwenden, für bestimmte Meldungen.

    IN SolutionExplorer - OpenSource hab ich sogar eine Statusbar erfunden, die ein bischen einem LogFile entspricht, also die kann man aufklappen, und glaub die letzten 20 Einträge nachlesen.
    Wobei SolutionExplorer weniger ein Programm ist für User-DAUs als ein Tool für Programmierer.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()