TypeScript:
การจัดการกับข้อผิดพลาด

วิธีการ:

ใน TypeScript, การจัดการกับข้อผิดพลาดมักประกอบด้วยบล็อก try, catch, และ finally

function riskyOperation() {
  throw new Error("Something went wrong!");
}

function handleErrors() {
  try {
    riskyOperation();
  } catch (error) {
    console.error("Caught an error:", error.message);
  } finally {
    console.log("This always runs, error or not.");
  }
}

handleErrors();

ผลลัพธ์ตัวอย่าง:

Caught an error: Something went wrong!
This always runs, error or not.

ตัวอย่างการใช้งานแบบ Async กับ promises:

async function asyncRiskyOperation() {
  return new Promise((resolve, reject) => {
    // จำลองข้อผิดพลาด
    reject("Failed miserably");
  });
}

async function handleAsyncErrors() {
  try {
    await asyncRiskyOperation();
  } catch (error) {
    console.error("Caught async error:", error);
  }
}

handleAsyncErrors();

ผลลัพธ์ตัวอย่าง:

Caught async error: Failed miserably

การเจาะลึก

การจัดการกับข้อผิดพลาดเป็นหัวใจหลักของการเขียนโปรแกรมตั้งแต่เริ่มแรก ใน TypeScript ซึ่งสร้างต่อจาก JavaScript, การจัดการข้อผิดพลาดกลายเป็นเรื่องที่ทนทานยิ่งขึ้นด้วยการนำเสนอ async/await ใน ECMAScript 2017 ก่อนหน้านั้น เรามักพึ่งพาฟังก์ชันย้อนกลับและ promises เพื่อจัดการกับข้อผิดพลาดในโค้ดที่ไม่ใช่แบบซิงโครนัส

อีกทางเลือกหนึ่งสำหรับ try/catch ใน TypeScript คือการใช้ขอบเขตข้อผิดพลาดที่ให้มาโดยเฟรมเวิร์กเช่น React สำหรับการจัดการฝั่งเซิร์ฟเวอร์ เราสามารถใช้มิดเดิลแวร์ในแพลตฟอร์มเช่น Express.js เพื่อจัดการข้อผิดพลาดได้อย่างเป็นศูนย์กลาง

ในแง่ของการปฏิบัติ, TypeScript ไม่มีกลไกการจัดการข้อผิดพลาดของตัวเองแต่อาศัยของ JavaScript คลาสข้อผิดพลาดที่กำหนดเองสามารถขยายจากคลาส Error เพื่อให้ข้อมูลข้อผิดพลาดที่ละเอียดยิ่งขึ้น

ดูเพิ่มเติม