Per favore, qualcuno mi può spiegare, cosa può sollevare un'eccezione in questo codice?Perché utilizzare la gestione delle eccezioni in codice apparentemente "sicuro"?
function CreateBibleNames: TStrings;
begin
Result := TStringList.Create;
try
Result.Add('Adam');
Result.Add('Eva');
Result.Add('Kain');
Result.Add('Abel');
except
Result.Free;
raise;
end;
end;
Dal momento che utilizzo delphi, ho utilizzato una gestione delle eccezioni forse una volta. Considero il codice sopra scritto da un abile programmatore e non penso che le eccezioni siano ridondanti. Ma ancora, usare la gestione delle eccezioni in questo concetto rimane un mistero per me. Sembra essere un codice sicuro (senza provare tranne alla fine). Ho visto molte volte frammenti di codice simili come questo, ecco perché c'è probabilmente una buona ragione per scriverlo in questo modo nonostante la mia esperienza, che non ha dimostrato la sua necessità.
Inoltre quando qualcosa non funziona, ottengo descrizione eccezione ....
Thanx
Quale bit del codice ti preoccupa? –
tra prova e tranne ... Ho un atteggiamento simile a "simsong" ... giusto? – lyborko
Anche se NON si dovrebbe implementare la gestione delle eccezioni solo per il gusto di farlo; nel codice precedente, è possibile un'eccezione. Se si verifica uno, allora c'è ** NO ** modo per il codice chiamante per eseguire la pulizia necessaria (per evitare perdite di memoria); pertanto, è imperativo che il codice sopra riportato prenda le precauzioni come illustrato. –