تبلیغات
برنامه نویسی و الکترونیک - آشنایی با بلوک های Try .. Finally و Try .. Except
 
منوی اصلی


--------------------------

--------------------------

--------------------------

--------------------------


سفارش پروژه

E-Mail :
Mahmood_Mehri@Hotmail.com

سایت برنامه نویس :  Mahmood_M


موضوعات

دانلود نرم افزار
 
تخصصی برنامه نویسی
  تخصصی برق ( الکترونیک )
  کامپوننت ها و ابزارها
  نرم افزارهای متفرقه
برنامه نویسی
  مباحث عمومی
  آموزش Delphi

  آموزش زبان C++ / C
 
آموزش Matlab

  آموزش زبان Assembly
  آموزش DataBase

الکترونیک
  مباحث عمومی
  مباحث عمومی الکترونیک
  معرفی قطعات الکترونیکی
  کار با مولتی متر
  مدارات الکترونیک
  میکروکنترلر
  میکروکنترلرهای AVR
  پروژه ها
مباحث متفرقه
  آموزشهای متفرقه
  معرفی سایت
  معرفی کتاب
  پاسخ به سئوالات
  مطالب عمومی


لینك دوستان
:: جک :: اس ام اس :: عکس
:: الکترونیک 89 گیلان
:: سورسهای نرم افزاری
:: اینترنت بدون تحریم
:: علمی.کتاب.مجله.نرم افزار.مقاله
:: مبارزات آزاد
:: برنامه نویسی از اهل زمین
:: :: جزیره ی دانلود ::
:: :: کامپیوتر و IT ::
:: بزرگترین پایگاه مدل لباس اینترنتی
:: مرکز دانلود ایرانیان
:: پایگاه علمی مهندسی تراشه
:: تمامی راهکارهای کامپیوتری
:: برنامه نویسی و طراحی وب
:: خرید ساعت دیواری
:: :: فناوری روز ::
:: :: همه چیز واسه موبایل ::
:: آموزش تخصصی کامپیوتر
:: * پیاز داغ اینترنت ! *
:: جدیدترین موزیکها و نرم افزارها
:: دانلود سورس ویژوال بیسیک
:: امپراطور دانلود و آموزش
:: موبایل و کامپیوتر
:: جدیدترین آهنگهای هفته
:: درباره ی دلفی !
:: برنامه نویس
:: پروژه های رایگان و آموزش ++C
:: ابراهیم آنلاین

 : " آشنایی با بلوک های Try .. Finally و Try .. Except " :
 
سلام !
در این پست قصد داریم با دستورات Try .. Finally و Try .. Except آشنا بشیم ...
بلوک Try به دو شکل قابل استفاده هست ، یکی با Finally و یکی هم با Except ، اما منظور از این دو تا چیه ؟
وقتی کدتون رو به صورت زیر می نویسید :

try
A;
finally
B;
end;

ابتدا دستور A که بعد از Try قرار داره اجرا میشه ، وقتی دستور A به پایان رسید ، دستوری که در قسمت Finally قرار داره ، یعنی B اجرا میشه ، نکته ی مهمی که باید بدونید اینه که دستور B چون بعد از Finally قرار داره ، بدون توجه به موفقیت آمیز بودن و نبودن اجرای دستور A اجرا میشه ، یعنی اگر برنامه در اجرای دستور A دچار مشکل بشه باز هم دستور B رو اجرا خواهد کرد ...

اما اگر به جای Finally از Except استفاده کنید :

try
A;
except
B;
end;

دستور B که بعد از Except قرار داره ، فقط زمانی اجرا میشه که دستور A با موفقیت به پایان نرسه یا به نوعی برنامه روی دستور A مجبور به توقف بشه ...
پس به طور کلی وقتی دستور A که بعد از Try قرار داره اجرا میشه دو حالت پیش میاد ، یا دستور بدون مشکل اجرا میشه و برنامه به کارش ادامه میده ، یا اینکه در اجرای این دستور خطایی اتفاق می افته .
در هر دو حالت دستور B وجود در قسمت Finally اجرا میشه ولی دستور B موجود در قسمت Except فقط در صورتی اجرا میشه که حالت دوم پیش بیاد ، یعنی دستور A با خطا همراه بشه .

از بلوک Try ... Finally با توجه به ویژگی ای که داره معمولا برای آزاد کردن اشیاء ساخته شده استفاده میشه ، به عنوان مثال :

MyObject := TMyClass.Create;
try
// Do something with MyObject here
finally
MyObject.Free;
end;

در دستور بالا ابتدا یک شیء به نام MyObject از نوع MyClass ایجاد میشه ، بعد از عبارت Try از شیء ساخته شده استفاده میشه و در نهایت بدون توجه به موفقیت آمیز بودن یا نبودن استفاده از شیء ، دستورات قسمت Finally اجرا میشه که مربوط به آزادسازی حافظه ی شیء ساخته شده هست .

در مواقعی لازمه که از بولکهای Try .. Finally و Try .. Except به صورت تو در تو استفاده کنیم ، به دستور زیر دقت کنید :

Try
  A;
Except
  B;
Finally
  C;
End;

گاهی اوقات لازم میشه که ابتدا دستوری مانند A اجرا بشه و در صورت اتفاق افتادن خطا ، دستور بعد از Except یعنی B اجرا بشه و در نهایت هم کدی مانند C اجرا بشه تا فضاهای اختصاص یافته رو آزاد کنه ، برای پیاده کردن چنین ساختاری باید ابتدا یک بلوک Try ... Finally بنویسید و در بین اون بلوک از یک بلوک Try .. Except استفاده کنید ، به عنوان مثال :

MyForm := TForm.Create(nil);
Try
  try
   // Do Something with MyForm
  except
   // Do Something if Error occurred
  end
Finally
  MyForm.Free;
End;

انشاالله در یک پست جدا به اصول استفاده از بلوک Try .. Except و روشهای کنترل خطا و نمایش پیغام در این بلوک اشاره میکنیم ...

امیدوارم مفید بوده باشه ، موفق باشید ...

 

 :: لینك ثابت نویسنده : محمود مهری نظرات Comment

مطالب اخیر

معرفی کانال و گروه های تلگرام
استفاده از Component Template ها در دلفی
مقاله : نحوه ی استفاده از پنل پیامک در نرم افزار
E-Book :: راه اندازی موتورهای DC و پله ای با استفاده از میکرو کنترلر AVR
آشنایی با عملگرهای بیتی ( Bitwise Operators )
تست دیود و ترانزیستور با مولتی متر
دلفی :: ارسال آرایه به حافظه ی Clipboard
یک سایت فوق العاده برای علاقه مندان به علم فیزیک
مداری برای نمایش عبور جریان برق از بدن !!
سال نو مبارک ...
آدرس وبلاگ !
ساخت یک LED فلاشر با میکروکنترلر AVR ATMega16A
آشنایی با کاربرد " رله " ( Relay ) در مدار
کار با ماتریسها در Matlab
SQL :: آشنایی با دستور شرطی WHERE


صفحات وبلاگ :