Errors

1️⃣ تعریف Error (خطا)
خطاها زمانی رخ می‌دهند که در اجرای کد مشکلی پیش بیاید.
جاوااسکریپت در این مواقع یک Error object ایجاد می‌کند که شامل اطلاعات خطا است.

2️⃣ انواع خطاها (Error Types)

  • SyntaxError → وقتی کد درست نوشته نشده باشد

console.log("سلام" // SyntaxError: پرانتز بسته نشده
  • ReferenceError → وقتی به متغیر تعریف‌نشده دسترسی داشته باشیم

console.log(x); // ReferenceError: x تعریف نشده
  • TypeError → وقتی عملیات روی نوع داده اشتباه انجام شود

let num = 5; num.toUpperCase(); // TypeError
  • RangeError → وقتی مقداری خارج از محدوده باشد

let arr = new Array(-5); // RangeError
  • EvalError → خطا در استفاده از eval() (کمتر رایج)

  • URIError → خطا در توابع مرتبط با URL مثل decodeURI()

decodeURI("%"); // URIError

3️⃣ مدیریت خطا با try...catch
برای جلوگیری از توقف کامل برنامه، از try...catch استفاده می‌کنیم:

try { let result = x + 5; // x تعریف نشده } catch (error) { console.log("خطا رخ داد:", error.message); }

4️⃣ استفاده از finally
کدی که داخل finally قرار می‌گیرد، چه خطا رخ بدهد چه ندهد اجرا می‌شود.

try { let num = 10 / 0; console.log(num); } catch (error) { console.log("خطا:", error.message); } finally { console.log("این بخش همیشه اجرا می‌شود ✅"); }

5️⃣ ایجاد خطای سفارشی با throw
می‌توانیم خودمان خطا ایجاد کنیم:

function divide(a, b) { if (b === 0) { throw new Error("تقسیم بر صفر امکان‌پذیر نیست ❌"); } return a / b; } try { console.log(divide(10, 0)); } catch (error) { console.log("خطا:", error.message); }

نکات مهم

  • جاوااسکریپت چند نوع خطای اصلی دارد: SyntaxError, ReferenceError, TypeError, ...

  • با try...catch می‌توان جلوی توقف کامل برنامه را گرفت.

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

  • بخش finally همیشه اجرا می‌شود.