![]() |
Fehlerbehandlung einstellen
Hallo,
wenn ich mein Projekt testen will, stürtz das Programm ständig an bei einer Division durch 0 ab (bzw. bringt eine Fehlermeldung).
Delphi-Quellcode:
Die exe manuell gestartet funktioniert logischerweise... nur aus Delphi heraus, wird das try ignoriert.
try
x:=x/y //y=0 except end; Kann man die Verfahrensweise des Compilers irgenwo einstellen? EDIT: Delphi 7 MFG Steffen |
Re: Fehlerbehandlung einstellen
also das try wird nicht ignoriert sondern der debugger bringt dir einfach nur eine Fehlermeldung. Dieser wird jedoch behandelt durch das Try-Except. Das kann man in den Optionen abstellen.
Sinnvoller fände ich wenn du einfach prüfst ob y = 0 ist bevor du die division ausführst. Beim autofahren versucht man ja auch auszuweischen zu bremsen etc. und sagt sich nicht: ich fahr dem da vorn einfach drauf, der airbag rettet mich schon. |
Re: Fehlerbehandlung einstellen
Liste der Anhänge anzeigen (Anzahl: 1)
Unter Delphi 5 hier (CheckBox "Bei Delphi-Exceptions stoppen")
|
Re: Fehlerbehandlung einstellen
Also ein try, ohne die Exception im except zu behandeln, ist schon mal eh schlechter Stil.
Wie ein Vorredner schon angedeutet hat, solltest Du es nicht darauf ankommen lassen, sondern den möglichen Fehlerfall vorher abprüfen:
Delphi-Quellcode:
Somit erzeugst Du keine Exception, die dann nachher nicht behandelt wird.
if y <> 0 then
begin a := x / y; end else begin // eine MessageBox oder andere Fehlerbehandlung end; Hier im Forum gibt es auch ein Tutorial zu Exceptions. Dieses solltest Du dringend mal durcharbeiten... |
Re: Fehlerbehandlung einstellen
Also zum Einen ist im Except-teil meines Programmes eine entsprechende Behandlung
und zum Anderen sollte der Code eher exemplarisch sein. Was ich wissen wollte ist, ob man hier durch die Delphi-Einstellungen was ändern kann (@DeddyH: schau morgen mal, wie das bei D7 ist...danke). Der Code selbst könnte also auch ein Verbindungsversuch zu einer DB oder sonstwas sein... hauptsache, es tritt ein Fehler auf. Was danach im Except-Teil ist, spielt für meine Frage absolut keine Rolle. MFG Steffen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:56 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