Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi try...except - Manuell in except springen (https://www.delphipraxis.net/119013-try-except-manuell-except-springen.html)

Yheeky 19. Aug 2008 14:29


try...except - Manuell in except springen
 
Hi,

ich habe einen try...except Block und würde gerne bei Misslingen einer bestimmten Abfrage in den Exception-Block springen. Wie kann ich das anstellen?
Sicher geht auch die Variante auch mit mehreren if-Abfragen, aber dieser Weg würde mich mal interessieren.

Bernhard Geyer 19. Aug 2008 14:31

Re: try...except - Manuell in except springen
 
Wie wäre es den das du eine Exception raised.

Delphi-Quellcode:
raise MyException.Create('BlaBla');

Deep-Sea 19. Aug 2008 14:31

Re: try...except - Manuell in except springen
 
Meinst du Abort?!

Apollonius 19. Aug 2008 14:31

Re: try...except - Manuell in except springen
 
Entweder du wirfst selbst eine Exception (z.B. EAbort), oder du verweist im Except auf eine Subroutine, die du dann aufrufst. Ich würde letzteres bevorzugen, weil es nicht so unperformant wie eine Exception ist.

Yheeky 19. Aug 2008 14:38

Re: try...except - Manuell in except springen
 
Mhmm, also ich weiss noch nicht so recht, wie ich das anstellen soll. Hier mal mit Codeausschnitt:

Delphi-Quellcode:
try
  if Form1.Label1.Caption <> 'Administrator' then
  // Exception werfen

  // Hier erfolgt die eigentliche Verarbeitung, weswegen ich zur try...except
  // gegriffen habe

except
  ShowMessage('Vorgang nicht erfolgreich');
end;

Deep-Sea 19. Aug 2008 14:41

Re: try...except - Manuell in except springen
 
Wenn es nichts komplexeres gibt, kannst du doch auf den ganzen Try-except-Block verzichten, oder?

Delphi-Quellcode:
If Form1.Label1.Caption <> 'Administrator' then
  raise Exception.Create('Fehler');

// Weiterer Code
Wenn die Exception auftritt, führt er den "weiterern Code" logischerweise nicht aus ...

DeddyH 19. Aug 2008 14:42

Re: try...except - Manuell in except springen
 
Delphi-Quellcode:
procedure ShowError;
begin
  ShowMessage('Vorgang nicht erfolgreich');
end;

...
try
  if Form1.Label1.Caption <> 'Administrator' then
    begin
      ShowError;
      exit; //oder alternativ in einem else-Zweig weitermachen
    end;
except
  ShowError;
end;

Apollonius 19. Aug 2008 14:45

Re: try...except - Manuell in except springen
 
Genau so meinte ich das, Detlef.

DeddyH 19. Aug 2008 14:47

Re: try...except - Manuell in except springen
 
Ich auch, Exceptions in einem try-Block auszulösen ist eine Lösung, die sich für mich "nicht richtig anfühlt" :mrgreen:

mkinzler 19. Aug 2008 15:00

Re: try...except - Manuell in except springen
 
Zitat:

Zitat von DeddyH
Ich auch, Exceptions in einem try-Block auszulösen ist eine Lösung, die sich für mich "nicht richtig anfühlt" :mrgreen:

Warum es gibt doch auch Menschen, die in die Säge langen, weil sie keinen Bock auf Arbeit haben :stupid:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:44 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz