کنترل خطا در ActionScript 3.0

FlashBank

کاربر فعال
با سلام .


چند وقت پیش که داشتم روی مبحث کنترل استثنا در C# کار میکردم به ذهنم رسید که این مبحث رو در ActionScript هم مورد بررسی قرار بدم . شاید یه مقاله کوتاه باشه ولی همون طور که می دونید خیلی کارایی زیادی داره . یه فایل PDF از مقاله رو هم پیوست کردم .


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


کنترل خطا در3 ActionScript
مقدمه :
یک استثنا نشانگر مشکلی است که در اجرای یک برنامه رخ داده است .اسم ( استثنا ) از این حقیقت ناشی می شود که با وجود اینکه امکان بروز مشکل وجود دارد اما این مشکل نادر و کمیاب می باشد . شاید بتوان سبک مدیریت و اجرای استثنا در ActionScript3.0 را مبتنی بر تحقیقات Bjarne Stroustrup و Andrew Koenig دانست .
TRY/CATCH :
با استفاده از این خاصیت می توانید خطاهای رخ داده شده در برنامه خود را کنترل کنید . کد های خود را در بین این دو کلمه ی کلیدی قرار می دهید تا از خطاهای رخ داده شده در هنگام اجرای برنامه جلوگیری کنید و به ادامه برنامه برسید .


شکل کلی دستور در ActionScript 3.0 به صورت زیر می باشد :
01.jpg
در هنگامی که خطایی رخ می دهد Flash روند اجرای برنامه را به بلوک Catch منتقل می کند .
هر بلوک Try یک بلوک Catch متناظر با خود را دارد . سعی کنید در استفاده از از Try/Catch به صورت تو در تو اجتناب کنید .










پرتاپ استثنا در ActionScript :
ما با استفاده از عبارت throw می توانیم یک استثنا را پرتاب کنیم .
کد زیر را با دقت بررسی کنید :
02.jpg

بلوک Finally در کنترل خطا ها :
این بلوک در هر صورت اجرا خواهد شد ، چه خطایی رخ دهد و چه رخ ندهد اجرا می شود . اگر در بلوک Try استثنایی رخ دهد این بلوک بعد از بلوک Catch اجرا خواهد شد و اگر استثنایی رخ ندهد بعد از بلوک Try اجرا خواهد شد .البته استفاده از بلوک Finally اختیاری خواهد بود . در زبان هایی همانند C# از این قسمت برای آزاد سازی منابع استفاده می شود زیرا در هر صورت اجرا خواهد شد . البته C# با استفاده از یک موتور قدرتمند این کار را به صورت خودکار انجام می دهد .
به نمونه کد زیر دقت فرمایید :
03.jpg

نتیجه گیری :
استفاده از بلوک Finally بستگی به نوع برنامه ی ما دارد . به طور مثال از کنترل خطا می توان در هنگام تقسیم یک عدد بر عدد صفر استفاده کرد .



امیدوارم مورد توجه قرار گرفته باشد : FlashMan
 

پیوست ها

++Hadi++

Active Member
با تشکر از FlashMan عزیز (محمد)
برای اینکه یه دستوری رو اجرا کنیم تا در شرایطی که درست بود کار جریان داشته باشه (فقط):
PHP:
var can:Boolean=true;//با دید خوشبینانه
try
{

}
catch(ٍErr:Error)
{
can=false;
trace(Err.message);
}
finally
{
if(can)
{
doNext();
}
}
 

جدیدترین ارسال ها

بالا