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
เพื่อให้ข้อมูลข้อผิดพลาดที่ละเอียดยิ่งขึ้น