Sto eseguendo il debug di un programma delphi.Devo liberare/distruggere le eccezioni dopo la gestione delle eccezioni?
except
on e: TErrorTapeDrive do
if e.errorCode = 1104 then
if Assigned(indexDoneEvent) then
indexDoneEvent;
// other handling...
// other handling...
end;
Prendo un'Escetion e faccio ciò di cui ho bisogno. Ora, quando il contatore del programma di debug raggiunge la linea appena sotto end;
, se si posiziona con il cursore su e.errorCode
, posso ancora vedere il suo valore. Mi aspetterei che questo fosse fuori portata e, alla fine, distrutto.
Quindi, la mia domanda è: devo liberare/distruggere le eccezioni dopo la gestione delle eccezioni?
Si prega di considerare di sollevare tale eccezione nel caso in cui il codice di errore * non sia * 1104. Attualmente il codice * ignora silenziosamente * tutti gli altri errori. –
Non solo errorCode, @RobKennedy, ma anche altri tipi di eccezioni devono essere gestiti. –
No, Paolo. Il tuo codice attuale già * ignora * altri tipi di eccezioni, che è il ** comportamento corretto **. Non ricevere mai un'eccezione a meno che tu non stia scrivendo il codice per * risolvere * il problema che ha causato l'eccezione. Se non puoi aggiustarlo, allora non prenderlo; altrimenti, il codice più in alto nello stack delle chiamate è * negato * l'opportunità di risolverlo. –