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 asli Error object. Kyunki TypeScript pehle se nahi jaan sakta ki ek diya gaya throw kya produce karega, yeh caught value ko any ke bajaye unknown type deta hai, jo aapko use 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 yahi wo cheez hai jo actually error.message ko accessible banati hai — ek unknown value par directly .message access karna ek compile error hoga.
Aage: type narrowing — us instanceof check ke peeche ka general pattern, aur baaki tarike jinse TypeScript types ko narrow karta hai.