Wem gehört diese Exception?



  • Hallo, ich hätte hier ein kleines Problem mit ner ConvertError-Exception:

    try
      {
        Geraeuschmessung->Nennleistung = edtNennleistung->Text.ToDouble();
        Geraeuschmessung->Datum = StrToDate(edtDatum->Text);
        //...
        Geraeuschmessung->Anzahl_Messpunkte = edtAnzahl_Messpunkte->Text.ToInt();
        Geraeuschmessung->Abstand = edtAbstand->Text.ToDouble();
      }
      catch(EConvertError &E)
      {
        //TODO : Besseres ExceptionHandling bei der Eingabe
    
        MessageDlg("In einem der Felder steht ein ungültiger Inhalt!",mtWarning,TMsgDlgButtons()<<mbOK,0);
        return;
      }
    

    Nun, meine Fehlermeldung klingt doch ziemlich bekloppt, oder? Ich würde dem Benutzer ja gerne mitteilen, welches Edit-Feld er editieren soll... nur habe ich keine Ahnung! Die Idee eines Kollegen, nach jeder Konvertierungszeile einen Zähler hochzählen zu lassen und dann im Catch-Teil ne switch-Anweisung zu machen gefällt mir nicht sonderlich... habt Ihr vielleicht ne bessere Idee?



  • Ach ja: Ich will auch nicht um jede Zuweisung ein try...catch packen... 🙂



  • Das ExceptionObjekt gibt dir mit:
    E.Message
    doch schon mal den fehlerhaften Wert zurück,
    reicht das nicht als Hinweis?



  • Naja... immerhin besser als mein Krampf... Danke! Nehme ich erst mal.
    Aber falls jemand noch was besseres findet... 🙂



  • Besser als nachträglich auf Gültigkeit zu prüfen, finde ich, unzulässige
    Eingaben zu verhindern. Entweder durch Verwendung entsprechender Komponenten
    oder durch Abfangen der Eingabe im KeyPress-Ereignis. Oder vielleicht bei
    einem Focus-Wechsel die Gültigkeit abprüfen.

    Gruß,

    Alexander



  • 😮 Die Möglichkeit ist mir gar nicht gekommen... peinlich.

    Tja... so könnte man es tatsächlich machen... danke! Na dann mache ich es mal so. Lalala.... *freu*


Anmelden zum Antworten