Ga naar inhoud

Delphi4 try....except statement


Aanbevolen berichten

Hallo, ik ben (nog) niet zo ervaren met delphi en heb een probleempje met het try statement. Het gaat goed tot en met het uitvoeren van het exception-blok, maar daarna springt het programma weer terug naar het statement in het try blok en probeert het opnieuw. Klopt dit? Dat wil ik dus eigenlijk niet. Het gaat om dit stukje code:

try QueryInsert.ExecSQL; except on E: EDBEngineError do begin AfzwaaierJa := True; With QueryAfzwaaierInsert do begin Params[0].Value := Opendialog1.Files[i]; Params[1].Value := 'Kan record niet toevoegen. ' + 'Foutboodschap: ' + E.Message; Params[2].Value := '2'; ExecSql; end; With Afzwaaier do begin CommitUpdates; ApplyUpdates; end; ID3TagOK := False; end; end; //end except

Link naar reactie
quote:
Originally posted by HankyPanky: Hallo, ik ben (nog) niet zo ervaren met delphi en heb een probleempje met het try statement. Het gaat goed tot en met het uitvoeren van het exception-blok, maar daarna springt het programma weer terug naar het statement in het try blok en probeert het opnieuw. Klopt dit? Dat wil ik dus eigenlijk niet. Het gaat om dit stukje code:
het klopt dat het 'exception'-deel bij je wordt overgeslagen ...

code:
 try
   QueryInsert.ExecSQL;
   // dit is het 'einde' van deze routine
 except
   on E: EDBEngineError do
   begin 
     // dit wordt alleen uitgevoerd als
     // er een fout (=EDbEngineError) optreed
     AfzwaaierJa := True;
     With QueryAfzwaaierInsert do
     begin
       Params[0].Value := Opendialog1.Files[i];
       Params[1].Value := 'Kan record niet toevoegen. ' +
      'Foutboodschap: ' + E.Message;
       Params[2].Value := '2';
       ExecSql;
     end; 
     With Afzwaaier do
     begin
       CommitUpdates;
       ApplyUpdates;
     end;
     ID3TagOK := False;
   end;
 end; //end except

Als je deze code in een lus zou aanroepen ... dan doe je dus feitelijk alleen maar :

code:
   QueryInsert.ExecSQL;

------------------ - Red Kink FM - - JaFO's Bot-editor - - How many pirates did you kill today ? -

Link naar reactie
Dat is toch alleen zo als er GEEN exception is? Als er wel een exception is wordt toch wel het deel wat onder except staat uitgevoerd? Bij mij tenminste wel, echter als dat is uitgevoerd springt hij weer terug naar het try-gedeelte, en dat lijkt me niet goed. Ik heb het trouwens al opgelost door van het stukje code een aparte procedure te maken. Toen werkte het ineens wel goed. Toch vindt ik het vreemd.
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...