कीवर्ड डालें Java

⚡ स्मार्ट सारांश

कीवर्ड डालें Java इसका उपयोग मेथड डिक्लेरेशन में उन चेक किए गए अपवादों की घोषणा करने के लिए किया जाता है जिन्हें मेथड निष्पादन के दौरान उत्पन्न कर सकता है। यह अपवाद हैंडलिंग को कॉलिंग मेथड को सौंपता है, बजाय इसके कि ट्राई-कैच ब्लॉक को अनिवार्य किया जाए।

  • 📢 थ्रो की परिभाषा: यह उन अपवादों को घोषित करता है जिन्हें कोई विधि उत्पन्न कर सकती है ताकि कॉल करने वाले उन्हें संभाल सकें।
  • 🧱 सिंटेक्स: इसे मेथड सिग्नेचर के बाद रखा जाता है, उदाहरण के लिए method(args) throws Exception1, Exception2.
  • 🔁 दो विकल्प: एक्सेप्शन को हैंडल करने के लिए ट्राई-कैच का उपयोग करें, या थ्रो का उपयोग करके इसे घोषित करें।
  • थ्रो बनाम थ्रोज़: throw एक एकल अपवाद ऑब्जेक्ट उत्पन्न करता है; throws हस्ताक्षर में एक या अधिक को सूचीबद्ध करता है।
  • ⚠️ कंपाइलर नियम: चेक किए गए अपवादों को या तो पकड़ा जाना चाहिए या घोषित किया जाना चाहिए, अन्यथा संकलन विफल हो जाएगा।

कीवर्ड डालें Java

Java कीवर्ड फेंकता है

RSI Java कीवर्ड फेंकता है प्रोग्राम निष्पादन के दौरान होने वाली अपवाद जानकारी को घोषित करने के लिए उपयोग किया जाता है। यह प्रोग्रामर को अपवाद के बारे में जानकारी देता है। अपवाद हैंडलिंग कोड प्रदान करना बेहतर है ताकि प्रोग्राम निष्पादन का सामान्य प्रवाह बनाए रखा जा सके।

Java अपवाद फेंको वाक्यविन्यास

मान लीजिए कि आपके जावा प्रोग्राम में आप एक लाइब्रेरी विधि का उपयोग कर रहे हैं जो एक अपवाद फेंकता है


Java कीवर्ड फेंकता है

अपने प्रोग्राम में, आप try & catch का उपयोग करके इस अपवाद को संभालेंगे।

import java.io.*;
class file1{
  public static void main(String[] args) {
     try{
           FileWriter file = new FileWriter("c:\\Data1.txt");
           file.write("Guru99");
           file.close();
    }
    catch(IOException){}
  }
}

यदि आप try-catch ब्लॉक में अपवाद को हैंडल नहीं करते हैं, तो कंपाइलेशन विफल हो जाएगा। लेकिन जावा लाइब्रेरी में लगभग हर दूसरा मेथड या यहां तक ​​कि उपयोगकर्ता द्वारा परिभाषित मेथड भी एक या दो अपवाद उत्पन्न कर सकता है। try और catch ब्लॉक का उपयोग करके सभी अपवादों को हैंडल करना बोझिल हो सकता है और इससे कोडर की कार्य गति धीमी हो जाएगी।

तो जावा एक विकल्प प्रदान करता है, जिसमें जब भी आप विधि परिभाषा में कोड का एक जोखिम भरा हिस्सा उपयोग कर रहे हैं तो आप इसे घोषित करते हैं फेंकता try catch को कार्यान्वित किए बिना एक अपवाद.

Java अपवाद फेंको वाक्यविन्यास

method (Arguments) throws Exception1,Exception2,Exception,… {}

कीवर्ड डालें Java उदाहरण

विधि घोषणा में throws के साथ ऊपर दिए गए समान उदाहरण पर विचार करें।

import java.io.*;
class file1{
    public static void main(String[] args) throws IOException{
      FileWriter file = new FileWriter("c:\\Data1.txt");
      file.write("Guru99");
      file.close();
    }
}

नोट: उपरोक्त कोड को सफलतापूर्वक चलाने के लिए, सबसे पहले अपनी C ड्राइव में Data1.txt नाम की एक खाली टेक्स्ट फ़ाइल बनाएँ। संक्षेप में, अपवादों को संभालने के दो तरीके हैं:

  1. अपवाद उत्पन्न करने वाले कोड को try और catch ब्लॉक में रखें।
  2. अपवाद फेंकने के लिए विधि घोषित करें

यदि उपरोक्त दोनों में से कोई भी कार्य नहीं किया जाता है, तो संकलक त्रुटि देता है। इस नियम को लागू करने के पीछे विचार यह है कि आप एक प्रोग्रामर के रूप में जानते हैं कि कोड का एक निश्चित हिस्सा जोखिम भरा हो सकता है और अपवाद फेंक सकता है।

थ्रो और थ्रोज़ में क्या अंतर है?

फेंकना फेंकता
इसका उपयोग एक नया अपवाद ऑब्जेक्ट बनाने और उसे फेंकने के लिए किया जाता है इसका प्रयोग विधि परिभाषा में यह घोषित करने के लिए किया जाता है कि एक जोखिमपूर्ण विधि को बुलाया जा रहा है।
throw कीवर्ड का उपयोग करके आप एक समय में केवल एक ही Exception घोषित कर सकते हैं throws कीवर्ड का उपयोग करके आप एक समय में एकाधिक अपवाद घोषित कर सकते हैं।
उदाहरण: नया IOException फेंकें ("कनेक्शन नहीं खोला जा सकता है"); उदाहरण: IOException, ArrayIndexBoundException फेंकता है;

अक्सर पूछे जाने वाले प्रश्न

throw कीवर्ड किसी मेथड के बॉडी के अंदर एक सिंगल एक्सेप्शन ऑब्जेक्ट को उत्पन्न करता है, जबकि throws कीवर्ड मेथड सिग्नेचर में एक या अधिक एक्सेप्शन घोषित करने के लिए दिखाई देता है जिन्हें मेथड अपने कॉलर को पास कर सकता है।

जी हाँ। एक ही थ्रो क्लॉज़ में अल्पविराम से अलग करके कई अपवाद सूचीबद्ध किए जा सकते हैं, उदाहरण के लिए throws IOException, SQLException। कॉलिंग विधि को तब उनमें से प्रत्येक को संभालना या आगे घोषित करना होगा।

नहीं। अनचेक्ड एक्सेप्शन्स (रनटाइमएक्सेप्शन के सबक्लास) को थ्रो स्टेटमेंट के साथ डिक्लेयर करने की आवश्यकता नहीं होती है। कंपाइलर केवल चेक्ड एक्सेप्शन्स जैसे कि IOException के लिए ही डिक्लेरेशन या हैंडलिंग अनिवार्य करता है।

एआई उपयुक्त ट्राई-कैच ब्लॉक सुझा सकता है, यह अनुशंसा कर सकता है कि अपवाद को पकड़ा जाए या घोषित किया जाए, सार्थक त्रुटि संदेश उत्पन्न कर सकता है और छिपे हुए अपवादों का पता लगा सकता है।ping डेवलपर अधिक सुरक्षित और रखरखाव योग्य त्रुटि-प्रबंधन कोड लिखते हैं।

जी हां। एआई किसी मेथड बॉडी का विश्लेषण कर सकता है, फाइल या नेटवर्क एक्सेस जैसे जोखिम भरे ऑपरेशनों की पहचान कर सकता है, और थ्रो क्लॉज में घोषित किए जाने वाले चेक किए गए अपवादों की सिफारिश कर सकता है, जिससे गलत घोषणाओं और संकलन त्रुटियों को कम किया जा सकता है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: