Announcement

Collapse
No announcement yet.

Probleme mit der Fehlerbehandlung

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

  • Probleme mit der Fehlerbehandlung

    Moin moin !

    Mit dem folgenden Code versuche ich eine Filterbedingung für einen
    Datenbankzugriff zusammenstellen.

    __Try

    ____PatNr := StrToInt(EditPatientenauswahl.Text);

    ____t := 'PatNr = ' + EditPatientenauswahl.Text;

    __except

    ____on E: EConvertError do begin

    ______t := 'Nachname = ''' + EditPatientenauswahl.Text + '''';

    ____end;

    __end;

    Der Anwender soll in das Edit-Feld eintweder die Patientennummer oder den Patientennamen eingeben.
    Wird eine Nummer eingegeben klappt alles; bei Eingabe eines Namens bricht die Anwendung ab, mit einer Fehlermeldung vom Typ EConvertError.

    Ich hatte es eigentlich so verstanden, daß ich mit der obigen Konstruktion
    genau diesen Fehler abfange.

    Wäre super, wenn mich 'mal jemand von dem Schlauch runterschubsen könnte,
    auf dem ich stehe.

    Danke und Gruß

    Hauke Gintner

  • #2
    Hallo,

    >..bricht die Anwendung ab, mit einer Fehlermeldung vom Typ EConvertError.

    tritt dieser Effekt auf, wenn A) das Programm aus Delphi heraus gestartet wurde (... der Debugger "hört" immer mit..) oder wenn B) die EXE standalone außerhalb von Delphi aufgerufen wird.

    Im Fall A) stoppt in der Voreinstellung der Delphi-Debugger trotz der Exception-Behandlung in jedem Fall. Nur im Fall B) wird die Exception durch den EXCEPT-Zweig abgewürgt

    Comment


    • #3
      Ich habe die Anwendung immer aus Delphi heraus gestartet.

      Dieses Vorgehen habe ich bislang als sehr bequem empfunden.

      Gibtr es die Möglichkeit, den Debugger zu überreden, diese Exception-Behandlung nicht zu unterbrechen ?

      Danke und Gruß

      Hauke Gintne

      Comment


      • #4
        In Delphi 7:

        Menü Tools -> Debugger-Optionen

        Im Tabsheet "Sprach-Exceptions" CheckBox "Bei Delphi-Exceptions stoppen" deaktivieren

        Comment


        • #5
          Hallo,

          Der Debugger wird die Exception natürlich normalerweise immer als solche anzeigen..
          Wüsste zumindest keinen Weg das abzustellen :-( Ich würde aber generell den Code so ändern, dass zunächst geprüft wird ist hier liegt hier eine Zahl vor => Weg 1 oder ist der Edit Text nicht als Zahl interpretierbar => Weg 2

          Die try-Except Funktion könnte dann den ganzen Block noch gegen wirklich spezielle Fehler sicher

          Comment

          Working...
          X