La gestione degli errori in Lazarus

In qualsiasi linguaggio di programmazione che si rispetti si necessita di poter gestire gli errori e Lazarus/Free Pascal non fanno eccezzione.
Per realizzare tale necessità ci viene incontro la seguente sintassi
Codice: [Seleziona]

     try
        try
           
           //nostro codice da eseguire su cui vogliamo effettuare una gestione degli errori
           ...
           
        finally
               //codice da effettuare a fine procedura sia che va bene il codice sopra sia che il codice ha sollevato un'eccezzione              
       end;
     except
           on E: Exception do
           begin
             
              //codice da eseguire solo se si verifica un eccezzione
             
           end;
     end;

Vediamo ora un esempio, immaginiamo una form con due EditBox in cui imputare due valori numerici e un pulsante che effettua una divisione tra i due valori inputati nelle EditBox, il codice per gestire al meglio tale esempio è:
Codice: [Seleziona]

var
   app: string;
begin
     try
        try
           app:=FloatToStr(StrToFloat(Edit1.Text)/StrToFloat(Edit2.Text));
        finally
               //Sono a fine procedura
               ShowMessage(app);
       end;
     except
           on E: Exception do
           begin
              ShowMessage('Errore: ' + E.message);
              Application.Terminate;
           end;
     end;
end;

Ora per capire bene cosa fa questo codice basta compilare (l'esempio allegato) ed eseguire il programma compilato (non in versione debug di lazarus). Provate a cliccare sul pulsante senza inputare i valori e vedrete cosa succede, poi provate a dividere un numero tipo 18,7 per 0 e vedete il risultato. Poi provate a dividere ad esempio 20 con 3 e vedrete un altro risultato.
Esempio completo: http://www.lazaruspascal.it/esempi/Errori.zip

SMF 2.0.8 | SMF © 2011, Simple Machines
Privacy Policy
SMFAds for Free Forums
TinyPortal © 2005-2012

Go back to article