JavaScript Errors
try و catch
هنگام اجرای کدهای جاوا اسکریپت، خطاهای متفاوتی ممکن است رخ دهد. این خطاها ممکن است مربوط به خود کد باشد و توسط برنامهنویس ایجاد شود، ممکن است به خاطر ورودی اشتباه باشد و یا به دلایل غیرقابل پیشبینی روی دهد.
با استفاده از عبارت try
میتوانید یک بلوک کد را برای خطاهای احتمالی مورد آزمایش قرار دهید. و با استفاده از عبارت catch
میتوانید بلوک کدی را تعریف کنید که در صورت وجود خطا در بلوک try
اجرا شود. در حقیقت این دو به همراه هم میآیند:
try {
Block of code to try
}
catch(err) {
Block of code to handle errors
}
مثال:
JavaScript Throw Errors
زمانی که خطا روی دهد، جاوا اسکریپت اجرای برنامه را متوقف و یک پیام خطا را تولید میکند. در اصطلاح فنی به این عمل میگویند: JavaScript will throw an exception (throw an error).
در حقیقت جاوا اسکریپت یک شیء خطا را با دو خصوصیت اسم و پیام ایجاد میکند.
عبارت throw
عبارت throw
این امکان را به شما میدهد که خطای دلخواه خودتان را تولید کنید. به اصطلاح فنی خودتان عمل throw exception را انجام دهید. خطای ایجاد شده میتواند رشته، عدد، بولین و یا یک شیء باشد.
throw "Too big"; // throw a text
throw 500; // throw a number
اگر از throw
به همراه try
و catch
استفاده کنید، میتوانید جریان برنامه را کنترل و پیام خطای مورد نظر خود را تولید کنید.
یک مثال از اعتبارسنجی ورودی
در مثال زیر ورودی مورد سنجش قرار میگیرد و اگر مقدار آن اشتباه باشد، یک خطا ایجاد میشود.
خروجی: در کادر مشخص شده مقداری را وارد کنید و سپس دکمه test input را کلیک کنید و نتیجه را مشاهده نمائید.
JavaScript try catch
Please input a number between 5 and 10:
کد بالا تنها یک مثال ساده است. مرورگرهای جدید اغلب از ترکیب جاوا اسکریپت با اعتبارسنجیهای داخلی 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
}
مثال:
خروجی: در کادر مشخص شده مقداری را وارد کنید و سپس دکمه test input را کلیک کنید و نتیجه را مشاهده نمائید.
JavaScript try catch
Please input a number between 5 and 10:
The Error Object
جاوا اسکریپت یک شیء خطای درونی (built in error object) دارد که در مورد خطای ایجاد شده اطلاعاتی را فراهم میآورد. شیء خطا دو خصوصیت مفید را فراهم میکند: اسم و پیام.
6 مقدار متفاوت توسط خصوصیت اسم خطا میتواند برگردانده شود:
اسم خطا | توضیح |
---|---|
EvalError | خطایی در تابع eval() رخ داده است. |
RangeError | عددی "خارج از محدوده" اتفاق افتاده است. |
ReferenceError | یک رفرنس غیرمجاز رخ داده است. |
SyntaxError | یک خطای نوشتاری رخ داده است. |
TypeError | یک خطای نوع رخ داده است. |
URIError | یک خطا در encodeURI() رخ داده است. |
در زیر هر یک از این خطاها را بررسی میکنیم.
Eval Error
در نسخههای جدیدتر جاوا اسکریپت این خطا به کار نمیرود و به جای آن از خطای SyntaxError استفاده میشود.
Range Error
هرگاه از عددی که خارج از محدوده مقادیر مجاز است استفاده کنید این خطا ایجاد میشود. برای مثال در کد زیر این خطا به دلیل آنکه نمیتوان یک عدد را با 500 رقم نوشت ایجاد میشود.
Reference Error
این خطا زمانی ایجاد میشود که به متغیری که ایجاد نشده رفرنس (ارجاع) بدهید.
Syntax Error
اگر بخواهید کدی که دارای اشتباه نوشتاری است را محاسبه (evaluate) کنید این خطا ایجاد میشود.
Type Error
اگر از مقداری که خارج از محدوده نوع مورد انتظار است استفاده کنید این خطا به وجود میآید.
URI (Uniform Resource Identifier) Error
اگر از کاراکترهای غیرمجاز در تابع URI استفاده کنید، این خطا به وجود میآید.
جهت مشاهده رفرنس کامل خطاها اینجا را کلیک کنید.