این آموزش در تاریخ ۱۴۰۰/۰۸/۰۸ آپدیت شده است.

آموزش مدیریت خطاها در جاوا اسکریپت

سلام خدمت تمامی دوستان و همراهان محترم سایت آموزشی فری لرن ، امیدوارم که حال همگیتون خوب باشه. لطفا در ادامه با آموزش مدیریت خطاها در جاوا اسکریپت با من همراه باشید.

آموزش مدیریت خطاها در جاوا اسکریپت

Free-Learn

مدیریت خطاها در جاوا اسکریپت

مدیریت خطاها ( یا به انگلیسی Handle کردن یا به دست گرفتن یا مدیریت کردن یا هندل کردن ) با استفاده از اون میتونیم خطاهای موجود در برنامه هامون رو مدیریت کنیم.

خب همونطور که خودتونم میدونید، بصورت پیش فرض اگه خطایی چیزی در برنامه مون وجود داشته باشه ، اون خطا بهمون نشون داده نمیشه. ( یعنی عملا ما نمیدونیم کجای برنامه خطا داره )

به همین خاطر ما میتونیم با بدست گرفتن ( Handle کردن ) خطاها ، خطاهامون رو کنترل کنیم و پیغام های مناسب به نسبت اون خطا در خروجی به نمایش درآوریم.

اینجوری دیگه حداقلش اگه برنامه مون خطا داشت، بهمون میگه خطای برنامه چیه ( که میتونیم در خروجی نام خطا و پیغام خطارو به نمایش بگذاریم ).

Free-Learn

اجرای یک کد در حالت عادی

خب گفتم در حالت عادی و پیش فرض اگه برنامه مون خطا داشته باشه ، هیچ چیزی به ما نشون نمیده که متوجه شیم مثلا در فلان جا فلان مشکل رو داریم.

مثال : گفتیم در صفحه متغیر MySite رو چاپ کن، ولی خب هیچ چیزی در خروجی چاپ نمیشه.

امتحان کنید

توضیح مثال بالا :

خب در مثال بالا گفتیم در صفحه ، متغیر MySite رو چاپ کن، ولی خب اصلا متغیر MySite وجود نداره یا تعریف نشده که بخواد در صفحه نمایش داده بشه.

پس در نتیجه در مثال بالا ما خطا داریم ولی خب خطارو نشون نمیده ، اینجاست که با استفاده از مدیریت کردن خطاها میتونیم خطاهامون رو کنترل کنیم.

Free-Learn

نحوه استفاده و مدیریت خطاها در جاوا اسکریپت

در زبان جاوااسکریپت با استفاده از چندین دستور به شرح زیر میتونیم خطاهارو مدیریت کنیم :

  • Try : سعی میکنه کدهارو اجرا کنه
  • Catch : اگه کدها خطا داشت اینجا مدیریت میشن
  • Finally : در نهایت بدون توجه به خطاها کدهارو اجرا میکنه

مثال :

Free-Learn

حالت های استفاده از دستور Try و Catch و Finally

ما میتونیم از این ۳ دستور در حالت های مختلف استفاده کنیم، ولی خب یادتون باشه که همیشه باید از دستور try استفاده کرد، پس حالت های استفاده از این ۳ دستور به شرح زیر می باشند :

حالت اول : استفاده فقط از try و catch

 

حالت دوم : استفاده فقط از try و finally

 

حالت سوم : استفاده از try و catch و finally

Free-Learn

پارامتر موجود در دستور catch

اگه توجه کرده باشید یه پارامتر درون دستور catch وجود داره، که بهش میگن شئ خطا ( یا Error Object ) ما با استفاده از این پارامتر میتونیم نام خطا ( name ) و پیغام خطا ( message ) رو بگیریم و در خروجی نمایش بدیم.

مثال :

اون کلمه error که داخل پرانتز هستش میشه همون پارامتر که گفتم، این یک متغیر با نام دلخواه هست ( یعنی هر اسمی دوس داشتید میتونید براش مشخص کنید )

مثال : مشخص کردن نام دلخواه برای پارامتر داخل دستور catch

Free-Learn

ویژگی های شئ خطا در دستور catch

خب همونطور که گفتم یه شئ یا یه پارامتر داخل دستور catch وجود داره که با استفاده از اون میتونیم نام و پیغام خطارو بدست آوریم.

نام خطاها توضیح
SyntaxError خطا مربوط به نحوه نوشتاری یک کد
RangeError وقتی یک چیزی از یک محدوده خاصی بیشتر باشه
ReferenceError خطا مربوط به متغیر تعریف نشده
TypeError خطا مربوط به نوع داده ای نامعتبر
URIError خطا مربوط به کاراکترهای نامعتبر در URL ها

Free-Learn

تعریف خطاهای سفارشی با استفاده از throw

خب در جدول بالا گفتیم یسری خطاها هستن که برنامه بهمون نشون میده، حال علاوه بر اونا میتونیم برای خودمون خطاهای سفارشی تعریف کنیم، یعنی مثلا سفارشی یه پیغام خطا مشخص کنیم که در خروجی نمایش داده بشه.

نحوه استفاده از دستور throw :

توضیح مثال بالا :

خب در خط ۲ گفتم اگه مقدار متغیر MyName خالی بود ، یه خطای سفارشی درست کن با مقدار Your Name Is Empty و بعدش در دستور catch همون خطای سفارشی رو در خروجی به نمایش درآوردیم. ( به همین راحتی )

Free-Learn

مثال های مختلف از مدیریت خطاها در جاوااسکریپت

حال در ادامه آموزش مدیریت خطاها در جاوا اسکریپت میخوایم در این قسمت مثال های مختلفی از نحوه مدیریت کردن خطاها در زبان جاوا اسکریپت رو باهمدیگه کار کنیم.

مثال شماره ۱ : استفاده عادی از try و catch

امتحان کنید

توضیح مثال بالا :

خب در خط ۳ یه متغیر با نام MySite و مقدار ” Free-Learn ” تعریف کردیم، بعدش در خط ۵ با استفاده از دستور try گفتیم این متغیر رو در صفحه چاپ کن.

و در نهایت با استفاده از دستور catch خطاهارو مدیریت کردیم، یعنی اگه خطایی چیزی در مثال بالا وجود داشته باشه هم نام خطا و هم پیغام خطا ( یعنی میشه name و message ) خطارو در خروجی نشون میده.

خب اگه مثال بالارو اجرا کنید هیچ خطایی نمیده بهتون و فقط کلمه ” Free-Learn ” رو در صفحه چاپ میکنه، حال اگه واقعا میخواید خطا بهتون بده ( که نام و پیغام خطارو ببینید ) بصورت دستی خودتون نام متغیر MySite رو تغییر بدید. ( مثلا کنیدش MySite1 ) ، بعدش در خروجی هم نام خطا و هم پیغام خطارو بهتون نشون میده.

 

مثال شماره ۲ : نمایش فقط نام خطا ( یعنی فقط میخوایم name خطارو بدست آوریم )

امتحان کنید

توضیح مثال بالا :

در مثال بالا برای اینکه خطا بهتون نشون داده بشه من عمدا متغیر MySite رو حذف کردم، یعنی عملا باید خطای ReferenceError بهتون بده ، این یعنی متغیر MySite تعریف نشده هست.

 

مثال شماره ۳ : نمایش فقط پیغام خطا ( یعنی فقط میخوایم message خطارو بدست آوریم )

امتحان کنید

مثال شماره ۴ : تعریف خطاهای سفارشی بصورت دلخواه با استفاده از دستور throw

امتحان کنید

مثال شماره ۵ : استفاده از ۳ دستور try , catch و finally

امتحان کنید

توضیح مثال بالا :

همونطور که گفتم، وقتی از دستور finally استفاده میکنیم ، بدون اینکه نتیجه رو در نظر بگیره ( یعنی برنامه چه خطا داشته باشه یا چه نداشته باشه ) براش مهم نیست و اون چیزی که در قسمت finally مشخص شده رو اجرا میکنه.

Free-Learn

دریافت PDF یا پرینت این مطلب