परिचय
finally स्टेटमेंट try और catch ब्लॉक के बाद हमेशा निष्पादित होता है, चाहे एरर हुआ हो या नहीं। यह क्लीनअप ऑपरेशन्स (फ़ाइल बंद करना, कनेक्शन रिलीज़ करना, लोडिंग इंडिकेटर छुपाना) के लिए आदर्श है।
उदाहरण
निम्न कोड जावास्क्रिप्ट में फाइनली स्टेटमेंट के लिए है:
<!DOCTYPE html> <html lang="hi"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>फाइनली स्टेटमेंट</title> <style> body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; } .result, .sample { font-size: 20px; font-weight: 500; } </style> </head> <body> <h1>जावास्क्रिप्ट में फाइनली</h1> <div class="sample"></div> <div style="color: green;" class="result"></div> <button class="Btn">यहाँ क्लिक करें</button> <h3> परिभाषित करने से पहले वेरिएबल को कॉल करने के लिए ऊपर दिए गए बटन पर क्लिक करें </h3> <script> const sampleEle = document.querySelector(".sample"); const resEle = document.querySelector(".result"); document.querySelector(".Btn").addEventListener("click", () => { try { resEle.innerHTML = a; // ReferenceError } catch (err) { resEle.innerHTML = 'Error = ' + err.message; } finally { sampleEle.innerHTML = 'फाइनली ब्लॉक के अंदर का कोड निष्पादित हो गया है'; } let a = 44; }); </script> </body> </html>
आउटपुट
उपरोक्त कोड निम्न आउटपुट उत्पन्न करेगा:

'यहाँ क्लिक करें' बटन पर क्लिक करने पर:

मुख्य व्यवहार
- हमेशा चलता है - चाहे try सफल हो, catch चले, या return/throw हो
- catch के बाद चलता है - भले ही catch में return हो
- एरर होने पर भी चलता है - यदि catch नहीं है तो भी
- अपवाद:
process.exit()(Node.js), अनकॉट एरर जो प्रोसेस को क्रैश करता है
व्यावहारिक उदाहरण
async function fetchData() {
showLoading(true);
try {
const response = await fetch('/api/data');
return await response.json();
} catch (error) {
console.error('फेच फेल:', error);
throw error;
} finally {
showLoading(false); // हमेशा छुपाएं
}
}