私が管理しているいくつかのアプリの多くの場所で、begin/end の使用を回避するor文でtry/finally
ortry/except
ブロックを使用するコードを見つけました。for loop
if
次のコードを検討してください (本番コードではなく、単なるサンプルです)
{$APPTYPE CONSOLE}
{$R *.res}
uses
Classes,
SysUtils;
Procedure TestNoBeginEnd;
var
i : Integer;
L1 : TStringList;
begin
for i := 1 to 10 do
try
L1:=TStringList.Create;
try
L1.Add('Bar');
L1.Add(IntToStr(i));
L1.Add('Foo');
finally
Writeln(L1.Text);
L1.Free;
end;
except
on E: Exception do
Writeln('Opps '+E.ClassName, ': ', E.Message);
end;
end;
begin
try
TestNoBeginEnd;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
Readln;
end.
質問、デルファイで begin/end の代わりに try/finally または try/except を使用すると、悪い習慣、コードの匂い、または欠点が存在すると見なされますか?
アップデート
ばかげたサンプル コードで申し訳ありませんが、try/finally と try/except を明確にするためだけに begin/end を置き換えるふりをしません。 try/finally または try/except の開始/終了は必要ありません。