Announcement

Collapse
No announcement yet.

Problem mit Exceptions

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

  • Problem mit Exceptions

    Hallo,
    ich habe folgendes Problem mit Exceptions: Trotz vermeintlich korrekter Syntax

    Try
    <problematische Anweisung>
    Except
    <Anweisung, die bei Problemfall auszuführen ist>
    End

    bricht die Anwendung immer bei der Problemzeile ab, ohne den Bereich hinter Except zu durchlaufen. Entsprechendes gilt für 'Try...finally'. Hat jemand eine Idee?

  • #2
    end richtig gesetzt?

    Comment


    • #3
      Hallo,

      wie sieht ein konkretes einfaches Beispiel aus, das nachgebaut werden kann? Wenn das Programm aus der Delphi-IDE heraus gestartet wird, hängt sich der Delphi-Debugger in der Voreinstellung automatisch in die ausgelöste Exception. Solange diese Voreinstellung nicht geändert wird, bleibt das aus der IDE heraus gestartet Programm an der problematischen Stelle "stehen" und kann dann schrittweise etc. näher untersucht werden.

      Comment


      • #4
        Hallo,
        zunächst das (einfach gehaltene) Beispiel:
        ...
        procedure TForm1.Button1Click(Sender: TObject);
        var f: file;
        begin
        try
        assignfile(f,'c:\temp\a.txt'); //Die Datei existiert nicht!
        reset(f);
        showmessage('Kein Dateifehler');
        closefile(f);
        except
        showmessage('Dateifehler');
        end;
        end;

        Tatsächlich habe ich das Programm über F9 aus Delphi heraus anstatt über die Exe-Datei gestartet. Zur Laufzeit wurde völlig korrekt der Except-Bereich durchlaufen. Kann man das mittels einer Einstellung auch festlegen, daß grundsätzlich das Programm den Except-Bereich verarbeitet? Wenn nein, warum nicht?

        Gruß,
        H-U Hofman

        Comment


        • #5
          Hallo,

          wenn der integrierte Debugger beim Start aus der IDE heraus aktiviert wird, kann man jederzeit über F9, F8 etc. weitermachen. Soll sich der integrierte Debugger jedoch als Standardeinstellung völlig heraushalten, so steht dazu unter <i>Tools | Debugger-Optionen | Allgemein</i> eine Checkbox zur Abwahl zur Verfügung.

          Auf der Community-Webseite von Borland (http://community.borland.com/homepage) wird der <b>Delphi Debug Expert</b> angeboten, der dies über 2 neue Menüpunkte automatisch umschalten kann.
          &#10

          Comment


          • #6
            Zusätzlich gibt es ab Delphi5 die Möglichkeit vor und hinter den Bereich der ohne Meldung durchlaufen werden soll je einen Haltepunkt zu sezten und in den Eigenschaften der Haltepunkte(rechte Maustaste auf Haltepunkt) jeweils Anhalten ausschalten und beim ersten ersten dann "Nachfolgende Exceptions ignorieren" und beim zweiten "nachfolgende Exceptions nicht ignoriren" (oder so ähnlich) einzuschalten. Die Laufzeiteigenschaften (nur wenn aus IDE gestartet) sind zwar fürterlich, aber Debugger hält sich dann an der Stelle völlig raus

            Comment

            Working...
            X