میخوای وارد بازار کار بشی و محصولات خودت رو بفرشی همین الان ثبت نام کن
0

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

در هر برنامه ای ممکن است خطا رخ دهد و بروز خطا اجتناب ناپذیر است. پس باید راهی برای مدیریت خطاها وجود داشته باشد. راه مدیریت خطا در جاوا اسکریپت دستورات try و catch هستند که در ادامه توضیح می دهیم.

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

دستور catch به شما امکان می دهد خطایی را بررسی کنید.

دستور throw به شما امکان می دهد خطاهای سفارشی ایجاد کنید.

دستور finally به شما امکان می دهد بعد از try و catch ؛ بدون در نظر گرفتن نتیجه ، کد را اجرا کنید.

خطاها رخ خواهند داد!

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

خطاها می توانند خطاهای کدگذاری شده توسط برنامه نویس ، خطاهای ناشی از ورودی اشتباه و سایر موارد غیرقابل پیش بینی باشند.

در این مثال ، ما دستور alert را به صورت اشتباه adddlert می نویسیم تا عمداً خطا ایجاد کند:

جاوا اسکریپت adddlert را به عنوان یک خطا می گیرد و برای مدیریت آن ، کد catch را اجرا می کند.

try و catch در جاوا اسکریپت

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

دستور catch به شما امکان می دهد اگر خطایی در بلوک تست شده رخ داد، یک بلوک کد را اجرا کنید.

دستورات try و catch در جاوا اسکریپت، به صورت جفت آمده است:

try {
Block of code to try
}
catch(err) {
Block of code to handle errors
}

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

وقتی خطایی رخ می دهد ، معمولاً جاوا اسکریپت متوقف شده و پیام خطایی ایجاد می کند.

اصطلاح فنی این امر عبارت است از: جاوا اسکریپت یک استثنا (اکسپشن) ایجاد می کند (خطا می دهد) .

جاوا اسکریپت در واقع یک شیء خطا با دو ویژگی ایجاد می کند: نام و پیام .

دستور throw

دستور throw به شما امکان می دهد خطای سفارشی ایجاد کنید.

از نظر فنی می توانید یک استثنا ایجاد کنید (خطا تولید کنید) .

استثنا می تواند یک String، یا Number، Booleanیا یک Object باشد :

اعتبارسنجی داده های ورودی با جاوا اسکریپت

در این مثال ورودی بررسی می شود. اگر مقدار اشتباه باشد ، یک استثناء (خطا) ایجاد می گردد.

استثناء (خطا) توسط دستور catch گرفته شده و یک پیام خطای سفارشی نمایش داده می شود:

اعتبار سنجی HTML

کد بالا فقط یک نمونه است.

مرورگرهای مدرن اغلب بر اساس قوانین اعتبارسنجی از پیش تعریف شده در ویژگی های HTML ، از ترکیب جاوا اسکریپت و اعتبار سنجی داخلی HTML استفاده می کنند:

دستور finally

دستور finally به شما اجازه می دهد، پس از try و catch صرف نظر از نتیجه، یک قطعه کد را اجرا کنید:

try {
Block of code to try
}
catch(err) {
Block of code to handle errors
}
finally {
Block of code to be executed regardless of the try / catch result
}

مثال

شیء خطا

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

شیء خطا دو ویژگی مفید دارد: نام و پیام.

ویژگی های شیء خطا

ویژگیشرح
نامنام خطایی را تنظیم یا برمی گرداند
پیامپیام خطایی را تنظیم یا بازمی گرداند (یک رشته)

مقادیر نام خطا

شش مقدار مختلف را می توان با خاصیت نام خطا برگرداند:

نام خطاشرح
EvalErrorدر عملکرد eval() خطایی رخ داده است
RangeErrorیک عدد “خارج از محدوده” رخ داده است
ReferenceErrorمرجع غیرقانونی رخ داده است
SyntaxErrorیک خطای نحوی رخ داده است
TypeErrorخطایی در نوع رخ داده است
URIErrorخطایی در encodeURI() رخ داده است

شش مقدار مختلف در زیر شرح داده شده است.

خطای Eval

خطای EvalError نشان دهنده بروز خطا در تابع eval() است.

نسخه های جدیدتر جاوا اسکریپت EvalError را پرتاب نمی کنند. به جای آن از SyntaxError استفاده می شود.

خطای محدوده

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

به عنوان مثال: شما نمی توانید تعداد رقم های عدد اعشاری را به ۵۰۰ تنظیم کنید.

var num = ۱;
try {
num.toPrecision(500);   // A number cannot have 500 significant digits
}
catch(err) {
document.getElementById(“demo”).innerHTML = err.name;
}

در صورت استفاده از (مرجع) یک متغیر است که تعریف نشده است، خطای ReferenceError تولید می شود :

خطای دستوری یا SyntaxError

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

خطای نوع یا TypeError

اگر از مقداری استفاده کنید که خارج از محدوده نوع مورد انتظار باشد ، خطای TypeError ایجاد می شود:

خطای (URI (Uniform Resource Identifier

اگر از کاراکترهای غیرمجاز در یک تابع URI استفاده کنید ، خطای URIError تولید می شود.

ویژگی های غیر استاندارد شیء خطا

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

fileName (Mozilla)
lineNumber (Mozilla)
columnNumber (Mozilla)
stack (Mozilla)
description (Microsoft)
number (Microsoft)

از این خصوصیات در وب سایت های عمومی استفاده نکنید. زیرا در همه مرورگرها کار نمی کنند.

 

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

نظراتتون رو زیر همین پست با ما به اشتراک بگذارید.

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

×

سلام کاربر عزیز

هر سوالی دارید در این بخش هستیم تا شما رو راهنمائی کنیم

روی لوگومون کلیک کنید

× چطور میتونم کمکتون کنم؟