PDA

View Full Version : try..finally



ramin_rp
یک شنبه 30 آذر 1382, 18:40 عصر
سلام
لطفا در مورد try..finally توضیح دهید
با اشکر
رامین
:oops:

sql_qassem
یک شنبه 30 آذر 1382, 19:07 عصر
برای اینکه کاربر در هنگام ایجاد خطا پیغام خطا نبیند و شما بتوانید خودتان پیغام مناسب برای وی بفرستید
از try ....except .....finaly استفاده می کنیم

try
سعی کن این دستور را انجام بدهی
except
در صورت بروز اشکال ، این کار را انجام بده .
finaly
در هر صورت (چه اشکالی بوجود آمده باشد یا خیر) این کار را انجام بده.

SQL
8)

Mashatan
یک شنبه 30 آذر 1382, 22:46 عصر
Try ...Finally برای جلوگیری از Goto و راحتی برنامه نویس درست شده زمانی هست که شما میخواهید با خارج شدن از یک Procedure یک سری فرمانهای اجرا شود . معمولا برای Free کرد استفاده میشود
به مثال زیر دقت کنید


procedure TForm1.Button1Click(Sender: TObject);
var
ST:TStringList;
begin
ST:=TStringList.Create;
try
ST.Add('ali');
if Edit1.Text<>'test' then
exit;
Edit1.Text:='123';
finally
ST.Free;
end;
end;

همانطوری که میبینید با Exit شدن ما احتیاج داریم که ST.free بشه و گذاشتن Free بین Finally و End هر Exit صورت بگیره ST.free خوانده میشه .
در مورد Except قضیه فرق میکنه یعنی وقتی یک خطای پیش بینی نشده رخ دهد میتوانید آن را کنترل کنید ! و بعضی از Component ها با استفاده Riase Exception نوع خطای خودشونو معرفی میکنن !

البته این حرفای من هیچ وقت Help خود دلفی نخواهد شد .

ارادتمند
مشاطان

sql_qassem
دوشنبه 01 دی 1382, 06:44 صبح
از یاد آوری آقای مشاطان بسیار ممنونم
SQL
8)

ramin_rp
دوشنبه 01 دی 1382, 12:18 عصر
سلام
بسیار ممنون