شیء خطا (Error Object)
در جاوااسکریپت یک «شیء خطا (Error Object)» وجود دارد. این شیء هنگام رخداد خطا ساخته می شود. دو ویژگی مهم دارد: «name» و «message». با این دو، نوع خطا و توضیح آن را می فهمیم.
شیء خطا چیست؟
«شیء (Object)» ظرفی از داده است. «شیء خطا» اطلاعات خطا را نگه می دهد. بنابراین می توانیم واکنش درست نشان دهیم.
ویژگی های مهم: name و message
«name» نام خطا را می دهد. «message» توضیح کوتاه خطاست. این دو، عیب یابی را ساده می کنند.
try {
new Array(-1);
}
catch (err) {
let n = err.name;
let m = err.message;
}
نام های استاندارد خطا
طبق منبع، نام های رایج این ها هستند. هر کدام کاربردی دارد.
- EvalError: منسوخ؛ به جایش SyntaxError.
- RangeError: عدد خارج از بازه.
- ReferenceError: ارجاع غیرمجاز.
- SyntaxError: دستور زبان نادرست.
- TypeError: نوعِ نادرست.
- URIError: خطا در encodeURI/decodeURI.
RangeError: طول آرایه منفی
وقتی مقدار خارج از محدوده باشد، RangeError می آید.
try {
new Array(-1);
}
catch (err) {
let info = err.name + ": " + err.message;
}
ReferenceError: متغیر پیدا نشد
اشاره به متغیرِ وجودنداشته، ReferenceError می دهد.
try {
x = y + 1;
}
catch (err) {
let info = err.name + ": " + err.message;
}
SyntaxError: دستور ناقص
اگر نحو کد غلط باشد، SyntaxError رخ می دهد.
try {
eval("let a = \"x");
}
catch (err) {
let info = err.name + ": " + err.message;
}
TypeError: عملیات روی نوعِ اشتباه
وقتی عملی برای آن نوع معتبر نباشد، TypeError می گیری.
try {
let n = 1;
n.toUpperCase();
}
catch (err) {
let info = err.name + ": " + err.message;
}
URIError: آدرس نامعتبر
وقتی ورودی URI بد باشد، URIError پرتاب می شود.
try {
decodeURI("%%%");
}
catch (err) {
let info = err.name + ": " + err.message;
}
ویژگی ها و متدهای غیراستاندارد
برخی ویژگی ها فقط در مرورگرهای خاص هستند. در سایت عمومی استفاده نکن.
نکته: به جدول «Non-Standard» در منبع نگاه کن. سازگاری مهم است.
گام های عملی
- مثال ها را در ادیتور باز کن.
- err.name و err.message را چاپ کن.
- تفاوت نام های خطا را مقایسه کن.
جمع بندی سریع
- شیء خطا دو بخش کلیدی دارد.
- name نوع خطا را می گوید.
- message توضیح کوتاه خطاست.
- به سازگاری مرورگر دقت کن.
ادامه مسیر: دستورات خطا را بخوان. سپس اشکال زدایی را دنبال کن. این ها کنار «شیء خطا» کامل می شوند.
منابع مرتبط: JavaScript Errors، JavaScript Silent Errors، و JavaScript Debugging.