Announcement

Collapse
No announcement yet.

Exception um eine Information erweitern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Exception um eine Information erweitern

    Hallo zusammen,

    in einer Windowsforms-Anwendung möchte ich in einer selbst erstellten Fehlermeldung (Ein eigenes Formular für Fehler- und Infoausgaben) die Exceptioninformationen anzeigen.
    Soweit klappt das auch ganz gut. Allerdings möchte ich die Exception an die die Aufrufende Methode durchreichen und dort die Anzeige der Fehlermeldung behandeln.
    Soweit bekäme ich das auch noch hin...

    Code:
    throw ex;
    Das Formular für die Fehlermeldung enthält eine RichText-Box um die Meldung etwas formatieren zu können.
    (soll ja hübsch aussehen wenn ein Fehler auftritt)
    Die richTb soll eine Überschrift enthalten die ich vor den Exceptioninformationen ausgebe.
    In diesem konkreten Fall "Fehler beim Ermitteln der Sparte" s.u.

    Nun zu meiner Anfängerfragen, wie kann ich neben der Exception einen zusätzlichen String übergeben?
    Kann ich eine Exception um eine Information erweitern und wie würde ich in der aufrufenden Methode darauf zugreifen?


    Code:
    try
                {
                    archForm.comboOrdBegSparte1 = FillComboSparte(archForm.comboOrdBegSparte1, sparten);
                    archForm.comboOrdBegSparte2 = archForm.comboOrdBegSparte1;
                }
                catch (Exception ex)
                {
                    var emm = new EmMaMessage();
                    emm.ShowError("Fehler beim Ermitteln der Sparten", ex);
                    throw;
                }

    Vielen Dank und Grüße aus Hamburg

  • #2
    Warum erweiterst du nicht ShowError?
    Ansonsten kannst du eine eigene Exceptionklasse entwerfen, die von Exception erbt und die deinen zusätzlichen String implementiert
    Christian

    Comment


    • #3
      Was meinst du mit ShowError erweitern?

      Comment


      • #4
        emm.ShowError("Fehler beim Ermitteln der Sparten", ex);

        zu

        emm.ShowError("Fehler beim Ermitteln der Sparten", ex, zweiter_String);
        Christian

        Comment


        • #5
          Du kannst auch einfach Exceptions schachteln. Exceptions haben auch eine innere Exception. Das sollte man aber nicht übertreiben wenn man später die Exception auch noch sinnvoll auswerten, also nicht nur anzeigen, will. Dann sollte man sich tatsächlich Gedanken über saubere Ableitungen von Exception für spezifische Anwendungsfälle machen.

          [HIGHLIGHT=C#]catch (Exception ex)
          {
          throw new Exception("Meine liebe generische Meldung die die technischen Details vor dem User verheimlichen soll.", ex);
          }
          [/HIGHLIGHT]

          Comment


          • #6
            @ Christian: Hmm, einer von uns versteht den anderen nicht...
            Eigentlich wollte ich nur die informationen
            Code:
             ex  und  "Fehler beim Ermitteln der Sparten"
            in die aufrufende Methode zurückgeben und mich dort um den Aufruf der Fehlermeldung etc. kümmern.

            Comment


            • #7
              Ich glaube das mit dem Verschachteln ist was ich gesucht habe.


              Vielen Dank an euch!

              Comment


              • #8
                Dann schachtle Exceptions ->Ralf oder leite eine neue Klasse ab
                Christian

                Comment

                Working...
                X