PDA

View Full Version : مدیریت خطا



Mask
چهارشنبه 18 تیر 1393, 00:12 صبح
سلام
کد زیر رو ببینید :

procedure TForm1.Button1Click(Sender: TObject);var
sl: TStringList;
i: Integer;
begin
sl := TStringList.Create;
try
try
for i := -5 to 5 do
sl.SaveToFile(ExtractFilePath(Application.ExeName) + 'com' +
IntToStr(i));
except
//
end;
finally
sl.Free;
end;


end;
حلقه For زمانی که به Com1 میرسه جون نمیتونه این فایل رو بسازه، به مشکل بر میخوره و میپره بیرون.
چطوری باید این نوع خطاها رو کنترل کرد که پس از اعلام خطا یا حتی اعلام نکردن خطا، برنامه به ادامه کار برسه و حلقه تا آخر اجرا بشه؟
ممنون از پاسخگوییتون.

hadisalahi2
چهارشنبه 18 تیر 1393, 09:01 صبح
به نظر من دستور saveToFile رو بزار توی Try و در Except دستور Continue رو بزار

Mask
چهارشنبه 18 تیر 1393, 21:38 عصر
ممنون از اقا یوسف و شما هادی جان.
مشکلی که الان دارم :
نمیدونم چرا برنامه هنگ میکنه؟

procedure TForm1.Button1Click(Sender: TObject);var
sl: TStringList;
i: Integer;
begin
sl := TStringList.Create;
try
for i := -5 to 10 do
begin
try
sl.SaveToFile(ExtractFilePath(Application.ExeName) + 'com' +
IntToStr(i));
except
ShowMessage('Can not create com'+IntToStr(i));
end;
end;
finally
sl.Free;
end;
end;

یوسف زالی
پنج شنبه 19 تیر 1393, 04:45 صبح
روی سیستم من کدتون کار می کنه.

hadisalahi2
پنج شنبه 19 تیر 1393, 16:52 عصر
نمیدونم چرا برنامه هنگ میکنه؟



من فکر میکنم هنگ نمیکنه
بلکه مدت زمان اجرای این دستور

sl.SaveToFile(ExtractFilePath(Application.ExeName) + 'com' +
IntToStr(i));
خیلی طولانی میشه
بعضی مواقع که دلفی میخواد یک چیزی رو توی یک جایی ذخیره کنه
خیلی تلاش میکنه تا این کار رو بکنه
ولی چون سعیش خیلی طولانی میشه ، فکر میکنیم برنامه هنگ میکنه
عجب اراده قوی داره این دلفی :لبخند: