Exception Handling (try/catch)
try/catch bilkul JavaScript ki tarah kaam karta hai — jo code fail ho sakta hai woh try mein jaata hai, aur agar kuch throw hota hai to crash hone ke bajaye catch chalta hai.
try {
const result = JSON.parse("not valid json");
} catch (error) {
console.log("Could not parse JSON!");
}Could not parse JSON!
Caught error unknown kyun hota hai
JavaScript aapko literally kuch bhi throw karne deta hai — ek string, ek number, ek asal Error object. Kyunke TypeScript pehle se nahi jaan sakta ke ek diya gaya throw kya paida karega, yeh caught value ko any ke bajaye unknown type deta hai, jo aapko istemal karne se pehle uska type check karne par majboor karta hai.
try {
JSON.parse("not valid json");
} catch (error) {
if (error instanceof Error) {
console.log(`Error: ${error.message}`);
}
}Error: Unexpected token o in JSON at position 1
error instanceof Error type ko unknown se Error tak narrow karta hai, aur yehi woh cheez hai jo asal mein error.message ko accessible banati hai — ek unknown value par seedha .message access karna ek compile error hoga.
Aage: type narrowing — us instanceof check ke peeche ka general pattern, aur baaki tareeqe jin se TypeScript types ko narrow karta hai.