Po co używać obsługi wyjątków w pozornie „bezpiecznym” kodzie?

Proszę, czy ktoś może mi wyjaśnić, co może wzbudzić wyjątek w tym kodzie?

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;

Ponieważ używam Delphi, użyłem obsługi wyjątków być może raz. Powyższy kod uważam za napisany przez doświadczonego programistę i nie sądzę, aby wyjątki były zbędne. Jednak nadal korzystanie z obsługi wyjątków w tej koncepcji pozostaje dla mnie tajemnicą. Wydaje się, że jest to bezpieczny kod (bez próby z wyjątkiem końca). Wiele razy widziałem podobne fragmenty kodu takie jak ten, dlatego prawdopodobnie jest dobry powód, aby napisać to w ten sposób, pomimo mojego doświadczenia, które nie udowodniło, że jest to konieczne.

Ponadto, gdy coś zawodzi, otrzymuję opis wyjątku ....

Dzięki

questionAnswers(8)

yourAnswerToTheQuestion