Vivasoft-logo

6.3 Try-Catch-Finally āĻĻāĻŋā§Ÿā§‡ āĻāϰāϰ āĻšā§āϝāĻžāĻ¨ā§āĻĄāϞāĻŋāĻ‚

  āϜāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ āĻ “āĻāϰāϰ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞāĻŋāĻ‚â€ āĻāϰ āϜāĻ¨ā§āϝ āφāĻŽāϰāĻž āĻŸā§āϰāĻžāχ-āĻ•ā§āϝāĻžāϚ-āĻĢāĻžāχāύāĻžāϞāĻŋ āĻŦā§āϞāĻ• āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŋāĨ¤ āĻāϟāĻŋ āĻĒā§āϰāĻ•ā§ƒāϤāĻĒāĻ•ā§āώ⧇ āĻāĻ•āϟāĻŋ āĻāĻ•ā§āϏ⧇āĻĒāĻļāύ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞāĻŋāĻ‚ āĻāϰ āĻāĻ•āϟāĻŋ āϰāĻžāĻ¸ā§āϤāĻžāĨ¤ āĻĒā§āϰāĻĨāĻŽā§‡ āφāϏ⧁āύ āĻāχ āĻŦā§āϞāĻ•āϗ⧁āϞ⧋āϰ āĻ•āĻžāϜ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ•āĻŋāϛ⧁ āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ• āϧāĻžāϰāύāĻž āύāĻŋā§Ÿā§‡ āύ⧇āχāĨ¤ āĻŸā§āϰāĻžāχ āĻŦā§āϞāĻ•āĻƒÂ āĻāχ āĻŦā§āϞāϕ⧇ āφāĻŽāϰāĻž āϕ⧋āĻĄā§‡āϰ āϏ⧇āχ āĻ…āĻ‚āĻļāϗ⧁āϞ⧋āχ āϰāĻžāĻ–āĻŦā§‹ āϝ⧇āĻ–āĻžāύ⧇ āϕ⧋āύ⧋ āϧāϰāύ⧇āϰ āĻāϰāϰ āĻšāĻ“ā§ŸāĻžāϰ āϏāĻŽā§āĻ­āĻžāĻŦāύāĻž āĻ°ā§Ÿā§‡āϛ⧇ āĻ…āĻĨāĻŦāĻž āĻāĻŽāύāĻ“ āĻšāϤ⧇ āĻĒāĻžāϰ⧇ āϝ⧇ āφāĻŽāϰāĻž āύāĻŋāĻœā§‡āϰāĻžāχ āĻšā§ŸāϤ⧋ āϏ⧇āĻ–āĻžāύ āĻĨ⧇āϕ⧇ āĻāϰāϰ āĻĨā§āϰ⧋ āĻ•āϰāĻ›āĻŋāĨ¤ āĻ•ā§āϝāĻžāϚ āĻŦā§āϞāĻ•āĻƒÂ  āĻŸā§āϰāĻžāχ āĻŦā§āϞāϕ⧇āϰ āϕ⧋āĻĄā§‡ āϕ⧋āύ⧋ āĻāϰāϰ āĻĒāĻžāĻ“ā§ŸāĻž āϗ⧇āϞ⧇ āϏ⧇āϟāĻžāϕ⧇ āφāĻŽāϰāĻž āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰāĻŦā§‹ āĻāχ āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āϏāĻŦ āϕ⧋āĻĄ āφāĻŽāϰāĻž āĻ•ā§āϝāĻžāϚ āĻŦā§āϞāϕ⧇ āϞāĻŋāĻ–āĻŦā§‹āĨ¤ āĻ…āĻ°ā§āĻĨāĻžā§Ž āĻŸā§āϰāĻžāχ āĻŦā§āϞāĻ• āĻĨ⧇āϕ⧇ āĻĨā§āϰ⧋ āĻ•āϰāĻž āĻāϰāϰ āĻ•ā§āϝāĻžāϚ āĻ•āϰ⧇ āφāĻŽāϰāĻž āĻāĻ–āĻžāύ⧇ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻ•āĻžāϜ āĻ•āϰāĻŦā§‹āĨ¤ āĻĢāĻžāχāύāĻžāϞāĻŋ āĻŦā§āϞāĻ•āĻƒÂ āĻŽāύ⧇ āϰāĻžāĻ–āϤ⧇ āĻšāĻŦ⧇ āϝ⧇ āĻĢāĻžāχāύāĻžāϞāĻŋ āĻŦā§āϞāϕ⧇āϰ āϕ⧋āĻĄ āϏāĻŦāϏāĻŽā§Ÿ āĻŸā§āϰāĻžāχ-āĻ•ā§āϝāĻžāϚ āĻŦā§āϞāϕ⧇āϰ āĻĒāϰ⧇ āϰāĻžāύ āĻ•āϰāĻŦ⧇āĨ¤ āφāĻŽāϰāĻž āϝāĻĻāĻŋ āĻāĻŽāύ āĻ•āĻŋāϛ⧁ āĻ•āϰāϤ⧇ āϚāĻžāχ āϝ⧇āχ āĻ•āĻžāϜāϟāĻž āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰ āĻŸā§āϰāĻžāχ-āĻ•ā§āϝāĻžāϚ āĻŦā§āϞāϕ⧇āϰ āĻĒāϰ⧇ āĻšāĻ“ā§ŸāĻž āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āϤāĻžāĻšāϞ⧇ āϏ⧇āϟāĻžāϰ āϜāĻ¨ā§āϝ āĻĢāĻžāχāύāĻžāϞāĻŋ āĻŦā§āϞāĻ• āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āωāĻĒāϰ⧇āϰ āϤāĻŋāύāϟāĻŋ āĻŦā§āϞāϕ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āĻ•ā§āϝāĻžāϚ āĻāĻŦāĻ‚ āĻĢāĻžāχāύāĻžāϞāĻŋ āĻŦā§āϞāĻ• āĻĻ⧁āϟāĻŋ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ…āĻĒāĻļāύāĻžāϞ āĻ…āĻĨāĻŦāĻž āϐāĻšā§āĻ›āĻŋāĻ•āĨ¤ āĻ…āĻ°ā§āĻĨāĻžā§Ž āĻŸā§āϰāĻžāχ āĻŦā§āϞāĻ•āϟāĻŋāϰ āϏāĻžāĻĨ⧇ āĻ•ā§āϝāĻžāϚ āĻāĻŦāĻ‚ āĻĢāĻžāχāύāĻžāϞāĻŋ āĻŦā§āϞāĻ• āĻĻ⧁āχāϟāĻŋ āϞāĻŋāĻ–āϤ⧇āχ āĻšāĻŦ⧇ āĻāĻŽāύ āϕ⧋āύ⧋ āĻŦāĻžāĻ§ā§āϝāĻŦāĻžāϧāĻ•āϤāĻž āύ⧇āχāĨ¤ āĻāχ āĻŦā§āϞāĻ• āĻĻ⧁āϟāĻŋ āφāĻŽāϰāĻž āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āĻ°ā§Ÿā§‹āϜāύ āĻ…āύ⧁āϝāĻžā§Ÿā§€ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦā§‹āĨ¤
try {
// āϕ⧋āύ⧋ āϧāϰāύ⧇āϰ āĻāĻ•ā§āϏ⧇āĻĒāĻļāύ āĻĨā§āϰ⧋ āĻšāĻ“ā§ŸāĻžāϰ āφāĻ— āĻĒāĻ°ā§āϝāĻ¨ā§āϤ āĻāχ āĻŦā§āϞāϕ⧇āϰ āϕ⧋āĻĄ āϰāĻžāύ āĻ•āϰāϤ⧇ āĻĨāĻžāĻ•āĻŦ⧇
} catch {
// āĻŸā§āϰāĻžāχ āĻŦā§āϞāĻ• āĻĨ⧇āϕ⧇ āϕ⧋āύ⧋ āĻāĻ•ā§āϏ⧇āĻĒāĻļāύ āĻĨā§āϰ⧋ āĻšāϞ⧇ āĻāχ āĻŦā§āϞāϕ⧇āϰ āϕ⧋āĻĄ āϰāĻžāύ āĻ•āϰāĻŦ⧇
} finally {
// āĻāĻ•ā§āϏ⧇āĻĒāĻļāύ āĻĨā§āϰ⧋ āĻšā§‹āĻ• āĻ…āĻĨāĻŦāĻž āύāĻž āĻšā§‹āĻ•, āĻŸā§āϰāĻžāχ āĻāĻŦāĻ‚ āĻ•ā§āϝāĻžāϚ āĻŦā§āϞāϕ⧇āϰ āĻĒāϰ⧇āχ āĻāχ āĻŦā§āϞāϕ⧇āϰ āϕ⧋āĻĄ āϰāĻžāύ āĻ•āϰāĻŦ⧇
}
āĻāĻ•āϟāĻŋ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽā§‡ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϧāϰāύ⧇āϰ āĻāϰāϰ āφāϏāĻžāχ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•āĨ¤ āĻāχ āĻŦā§āϞāĻ•āϗ⧁āϞ⧋ āĻŦā§āϝāĻŦāĻšāĻžāϰ⧇āϰ āϏ⧁āĻŦāĻŋāϧāĻž āĻšāϞ⧋ āϕ⧋āύ⧋ āĻāϰāϰ āϧāϰāĻž āĻĒ⧜āϞ⧇ āϏ⧇āϟāĻŋāϰ āϜāĻ¨ā§āϝ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽ āϝāĻžāϤ⧇ āĻŦāĻ¨ā§āϧ āύāĻž āĻšā§Ÿā§‡ āϝāĻžā§Ÿ āĻāϟāĻž āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāĻžāĨ¤ āĻŸā§āϰāĻžāχ āĻ•ā§āϝāĻžāϚ āĻŦā§āϞāĻ• āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻŽāϰāĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϧāϰāύ⧇āϰ āĻāϰāϰ āĻāϰ āϜāĻ¨ā§āϝ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽ āĻ•āĻŋāϰāĻ•āĻŽ āφāϚāϰāĻŖ āĻ•āϰāĻŦ⧇ āϏ⧇āϟāĻž āĻŦāϞ⧇ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āύāĻŋāĻšā§‡āϰ āĻĢā§āϞ⧋āϚāĻžāĻ°ā§āϟ-āϟāĻŋ āĻĻ⧇āĻ–āϞ⧇ āφāĻĒāύāĻžāϰāĻž āĻāϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āφāϰ⧋ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āϧāĻžāϰāύāĻž āĻĒāĻžāĻŦ⧇āύāĨ¤ javascript try catch finally āϚāĻŋāĻ¤ā§āϰāĻƒÂ āĻŸā§āϰāĻžāχ-āĻ•ā§āϝāĻžāϚ-āĻĢāĻžāχāύāĻžāϞāĻŋ āĻŦā§āϞāĻ•
  • āωāĻĻāĻžāĻšāϰāύ ā§§āσ
    try {
    JSON.parse(“<html></html>”);
    } catch (e) {
    if (e instanceof SyntaxError) {
    console.log(“I caught a SyntaxError! I’ll handle it specifically here.”);
    } else {
    console.log(
    “I caught an error, but it wasn’t a SyntaxError. I handle all non-SyntaxErrors here.”
    );
    }
    }
    āωāĻĒāϰ⧇āϰ āϕ⧋āĻĄāϟāĻŋāϤ⧇ SyntaxError āφāϛ⧇, āĻāχ āχāϰāϰ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āφāĻŽāϰāĻž try catch āχāωāϏ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āϝāĻĻāĻŋ try āĻāϰ āĻ­āĻŋāϤāϰ⧇ āϕ⧋āύ āχāϰāϰ āĻĻā§‡ā§Ÿ ,āϏ⧇āχ āχāϰāϰ catch āĻāϰ āĻ­āĻŋāϤāϰ⧇ āϧāϰāĻž āĻšā§ŸāĨ¤ catch āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻāĻ•āϟāĻŋ error āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇ ,āϏ⧇āχ error āϕ⧇ āφāĻŽāϰāĻž āύāĻŋāĻœā§‡āĻĻ⧇āϰ āĻŽāϤ⧋ āĻŽāĻĄāĻŋāĻĢāĻžāχ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤
  • āωāĻĻāĻžāĻšāϰāύ ⧍āσ
    try {
    console.log(a);
    } catch (error) {
    console.log(“An error caught”);
    console.log(“Error message: “ + error);
    }
    āφāĻŽāϰāĻž āϝāĻĻāĻŋ āϕ⧋āύ āĻ­ā§āϝāĻžāϰāĻŋā§Ÿā§‡āĻŦāϞ āĻĄāĻŋāĻ•ā§āĻ˛ā§‡ā§ŸāĻžāϰ āύāĻž āĻ•āϰāĻŋ āϤāĻŦ⧇ āχāϰāϰ āĻĻā§‡ā§ŸāĨ¤ āωāĻĒāϰ⧇āϰ āϕ⧋āĻĄāϟāĻŋāϤ⧇ āφāĻŽāϰāĻž āϏ⧇āϟāĻŋ try/catch āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰāϞāĻžāĻŽāĨ¤
  • āωāĻĻāĻžāĻšāϰāύ ā§Šāσ
    try {
    nonExistentFunction();
    } catch (error) {
    console.error(error);
    // expected output: ReferenceError: nonExistentFunction is not defined
    // Note – error messages will vary depending on browser
    }
    āωāĻĒāĻ°ā§‡Â nonExistentFunction() āĻĢāĻžāĻ‚āĻļāύāϟāĻŋ āĻĄāĻŋāĻ•ā§āĻ˛ā§‡ā§ŸāĻžāϰ āĻ•āϰāĻž āĻšā§ŸāύāĻŋ ,āĻāĻ–āĻžāύ⧇ āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ āχāϰāϰ āĻĻāĻŋāĻŦ⧇ āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻŽāϰāĻž try/catch āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻāχ āχāϰāϰ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤
  • āωāĻĻāĻžāĻšāϰāύ ā§Ēāσ
    async function getData() {
    try {
    const response = await fetch(
    “https://jsonplaceholder.typicode.com/todos/1”
    );
    if (response.status === 200) {
    const result = await response.json();
    console.log(result);
    } else {
    console.log(“Failed to load Data”);
    }
    } catch (error) {
    console.log(“Server Error”, error);
    }
    }
    getData();
    āϝāĻ–āύ āϕ⧋āύ Api āχāωāϜ āĻ•āϰāĻž āĻšā§Ÿ āϤāĻ–āύ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϧāϰāϪ⧇āϰ āχāϰāϰ āφāϏāϤ⧇ āĻĒāĻžāϰ⧇ āϝ⧇āĻŽāύ authentication , server error āĻāχ āχāϰāϰ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻĒāϞāĻŋāϕ⧇āĻļāύ destroy āĻšā§Ÿā§‡ āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇ āĨ¤ try/catch āĻŦā§āϞāĻ• āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āφāĻŽāϰāĻž āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϧāϰāύ⧇āϰ āĻāϰāϰ āĻāϰ āϜāĻ¨ā§āϝ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽ āĻ•āĻŋāϰāĻ•āĻŽ āφāϚāϰāĻŖ āĻ•āϰāĻŦ⧇ āϏ⧇āϟāĻž āĻŦāϞ⧇ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤
  • āωāĻĻāĻžāĻšāϰāύ ā§Ģāσ
    try {
    console.log(“success”);
    } catch (error) {
    console.log(“There is a error”);
    } finally {
    console.log(“Always calling”);
    }
    Finally āϏāĻŦāϏāĻŽā§Ÿāχ āĻ•āϞ āĻšāĻŦ⧇ āĻāϟāĻŋ āĻāϰāϰ āĻšā§‹āĻ• āφāϰ āϏāĻžāĻ•ā§āϏ⧇āϏ āĻšā§‹āĻ•āĨ¤āϝāĻĻāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āĻāĻŽāύ āϕ⧋āύ āĻ•āĻžāϜ āĻĨāĻžāϕ⧇ āϝ⧇ āĻ•āĻžāϜāϟāĻŋ āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰāχ āĻāĻ•ā§āϏāĻŋāĻ•āĻŋāωāĻļāύ āĻšāĻŦ⧇ success/error āϕ⧋āύ āĻŦāĻŋāώ⧟ āύāĻž, āϏ⧇āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āφāĻŽāϰāĻž finally āχāωāϜ āĻ•āϰāĻŦā§‹āĨ¤
  • finally āĻ•āĻŋ āϏāĻŦāϏāĻŽā§Ÿāχ āĻ•āϞ āĻšā§Ÿ ?
  • āĻļ⧁āϧ⧁ āĻ•āĻŋ try āϞ⧇āĻ–āĻž āϝāĻžā§Ÿ catch/finally āĻ›āĻžā§œāĻž ?
  • āĻāĻ•āϟāĻŋ asynchronous āĻĢāĻžāĻ‚āĻļāύ⧇ API āĻ•āϞ āĻ•āϰ⧇ ,āϝāĻĻāĻŋ status Code ⧍ā§Ļā§Ļ āĻšā§Ÿ āϤāĻŦ⧇ āĻĄāĻžāϟāĻž āĻ•āύāϏ⧋āϞ⧇ āĻĻ⧇āĻ–āĻžāϤ⧇ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ āϤāĻž try catch āĻĻāĻŋā§Ÿā§‡ āĻāϰāϰ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞāĻŋāĻ‚ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤