TypeScript:
טיפול בשגיאות

איך לְ:

ב-TypeScript, טיפול בשגיאות לעיתים כרוך בבלוקים של try, catch, ו-finally.

function riskyOperation() {
  throw new Error("משהו השתבש!");
}

function handleErrors() {
  try {
    riskyOperation();
  } catch (error) {
    console.error("תפסתי שגיאה:", error.message);
  } finally {
    console.log("זה תמיד רץ, אם יש שגיאה או לא.");
  }
}

handleErrors();

פלט לדוגמה:

תפסתי שגיאה: משהו השתבש!
זה תמיד רץ, אם יש שגיאה או לא.

דוגמה אסינכרונית עם הבטחות (promises):

async function asyncRiskyOperation() {
  return new Promise((resolve, reject) => {
    // סימולציה של שגיאה
    reject("נכשל באופן חמור");
  });
}

async function handleAsyncErrors() {
  try {
    await asyncRiskyOperation();
  } catch (error) {
    console.error("תפסתי שגיאה אסינכרונית:", error);
  }
}

handleAsyncErrors();

פלט לדוגמה:

תפסתי שגיאה אסינכרונית: נכשל באופן חמור

עיון נוסף

טיפול בשגיאות היה אבן דרך בתוכנות מאז היווסדותה. ב-TypeScript, שמפתח על גבי JavaScript, טיפול בשגיאות הפך ליותר עמיד עם ההכנסה של async/await ב-ECMAScript 2017. לפני כן, לעיתים נסמכנו על פונקציות קולבק והבטחות כדי לטפל בשגיאות בקוד אסינכרוני.

חלופה לtry/catch ב-TypeScript היא שימוש בגבולות שגיאה שמספקים פריימוורקים כמו React. לטיפול בצד-השרת, אנו יכולים להשתמש בתוכנת ביניים (middleware) בפלטפורמות כמו Express.js למרכז ניהול שגיאות.

מבחינת יישום, ב-TypeScript אין מנגנון טיפול בשגיאות משלו אלא הוא מסתמך על זה של JavaScript. מחלקות שגיאה מותאמות אישית יכולות לירש את המחלקה Error כדי לספק מידע תיאורי יותר על שגיאות.

ראה גם