![]() |
try.......except....end; - Compiler soll dies beachten
Hallo,
gibt es eine möglichkeit, das Delphi, try except, beim ausführen mit dem debugger beachtet? Lg Simon |
AW: try.......except....end; - Compiler soll dies beachten
Ich verstehe die Frage nicht, kannst Du etwas konkreter werden?
|
AW: try.......except....end; - Compiler soll dies beachten
Code:
Wenn beim Debuggen ein Fehler bei "x:=1" auftritt, dann bleibt der debugger stehen und führt nicht automatisch den except teil stattdesen aus.
try
x := 1 except x := 2 Ich würde es gerne haben das delphi beim debuggen automatisch den except teil hernimmt, wenn der try teil einen fehler hat. |
AW: try.......except....end; - Compiler soll dies beachten
Dann musst Du dem Debugger sagen, er soll diese(n) Exception(typ) ignorieren.
|
AW: try.......except....end; - Compiler soll dies beachten
Zitat:
Wenn du das nicht möchtest, kannst du wie mkinzler schon geschrieben hat den Exceptiontyp ignorieren. In einigermaßen aktuellen Delphiversionen geht das direkt in dem Dialog, den der Debugger anzeigt, in alten Versionen nur über die Optionen. |
AW: try.......except....end; - Compiler soll dies beachten
Wird diese Exception denn oft ausgelöst?
Grundsätzlich wäre es besser, wenn man erstmal vermeidet, daß eine Exception überhaupt ausgelöst wird ... dann braucht man dem Debugger auch keine Ausnahme beibringen. :stupid:
Delphi-Quellcode:
try
i := StrToInt('abc'); except i := 0; end; |
AW: try.......except....end; - Compiler soll dies beachten
Zitat:
Vielleicht so: Grundsätzlich wäre es besser, wenn der happy path programmiert wird, d.h. man geht z.B. davon aus, das der String eine Zahl ist (wenn man davon ausgehen kann), die Verbindung zustande kommt, der Divisor <> 0 ist (wenn das kein Sonderfall, d.h. Bestandteil der Formel ist) usw. Als Prüfung, ob der String eine Zahl ist, eignet sich das try-except-pattern nicht, da hast Du vollkommen recht.
Delphi-Quellcode:
// Happy Path
try DoThis; DoThat; C := A/B; Number:= StrToInt(aString); except ShowMessage('This did not work properly'); end; // Prüfung if TryStrToInt(aString, Number) then Number := StrToInt(aString); else ShowMessage('Cannot convert'); // Oder mach sonst irgendwas if Not IsZero(B) then C:=A/B else c:= NaN; if CanConnectTo(URL) then ConnectTo(URL) else ShowMessage('Cannot connect to '+URL); |
AW: try.......except....end; - Compiler soll dies beachten
OT-Korinthenmodus
Zitat:
@happy path (grundsätzlich) Besonders happy wäre ich oder der Anwender vielleicht mit der Original Fehlernummer/-Meldung und einer Ausgabe der Variableninhalte, die zum Fehler geführt haben. /OT-Korinthenmodus |
AW: try.......except....end; - Compiler soll dies beachten
Ich greife das Thema nochmal auf, weil ich ein ähnliches Problem habe, mit einer Exception, die aus Indy kommt, wenn keine Verbindung aufgebaut werden kann.
Naütrlich kann ich im Debugger sagen, dass er diese Exception ignorieren soll. Allerdings gilt es dann zum einen für alle Exceptions, wo keine Verbindung aufgebaut werden kann, zum anderen muss ich das immer auf allen Delphi Installationen neu machen. Gibt es nicht einfach eine Compilerdirektive, wo man sagen kann "diese Exception nie an den Debugger melden"? Gerade in Threads führt diese Exception bei mir nämlich oft dazu, dass die ganze IDE hängt, wenn ich F9 drücke. |
AW: try.......except....end; - Compiler soll dies beachten
Nein, leider nicht. Das nervt mich auch ständig.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz