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

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

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

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

Free-Learn

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

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

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

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

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

Free-Learn

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

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

مثال شماره ۱ : گفتیم در صفحه متغیر MySite رو چاپ کن، ولی خب هیچ چیزی در خروجی چاپ نمیشه، چون اصلا متغیر 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 ) رو بگیریم و در خروجی نمایش بدیم.

  • name : برای ست کردن یا گرفتن نام خطا
  • message : برای ست کردن یا گرفتن متن پیغام خطا

مثال :

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

Free-Learn

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

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

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

Free-Learn

خطای SyntaxError

این خطا موقعی رخ میده که از نظر نوشتاری یا سینتکس مشکلی درون یک کد وجود داشته باشه.

امتحان کنید

خطای RangeError

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

امتحان کنید

خطای ReferenceError

این خطا موقعی رخ میده که ما سعی داریم از متغیری استفاده کنیم که اصلا در برنامه تعریف نشده.

امتحان کنید

خطای TypeError

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

امتحان کنید

خطای URIError

این خطا که مخفف Uniform Resource Identifier می باشد، موقعی رخ میده که سعی داریم از کاراکترهای غیرمعتبر در توابع URI مثه ()decodeURI یا ()encodeURI استفاده کنیم.

امتحان کنید

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 ) ، بعدش در خروجی هم نام خطا و هم پیغام خطارو بهتون نشون میده.

 

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

امتحان کنید

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

امتحان کنید

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

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

Free-Learn

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