जावा में शून्य सूचक अपवाद: कार्यान्वयन और उदाहरण



यह आलेख आपको विस्तृत और व्यापक ज्ञान प्रदान करेगा कि उदाहरणों के भार के साथ जावा में नल सूचक अपवाद कैसे काम करता है।

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

जावा में अशक्त सूचक अपवाद क्या है?





जावा में शून्य सूचक अपवाद एक रनटाइम अपवाद है। जावा की दुनिया में, एक विशेष अशक्त मूल्य एक वस्तु संदर्भ को सौंपा गया है। नल सूचक अपवाद तब पेश किया जाता है जब कोई प्रोग्राम ऑब्जेक्ट संदर्भ का उपयोग करने का प्रयास करता है, जिसमें शून्य मान होता है। कौन हो सकता है:

  • अशक्त वस्तु से एक निश्चित विधि का आह्वान करना।
  • किसी अशक्त वस्तु के क्षेत्र तक पहुँचने या संशोधित करने के लिए।
  • अशक्त की लंबाई पर विचार करके, जैसे कि यह एक सरणी थी।
  • किसी अशक्त वस्तु के स्लॉट को एक्सेस या संशोधित करते समय।
  • फेंकने योग्य मूल्य की तरह अशक्त फेंकना।
  • एक अशक्त वस्तु पर सिंक्रनाइज़ करने की कोशिश कर रहा है।

हमें अशक्त मूल्य की आवश्यकता क्यों है?



नल जावा में उपयोग किया जाने वाला एक अनूठा मूल्य है। नल का उपयोग यह दर्शाने के लिए किया जाता है कि कोई मान किसी संदर्भ चर को नहीं सौंपा गया है। नल का प्राथमिक अनुप्रयोग लिंक्ड सूची और पेड़ों जैसी डेटा संरचनाओं को लागू करने में निहित है। कुछ अन्य अनुप्रयोगों में अशक्त वस्तु पैटर्न और सिंगलटन पैटर्न शामिल हैं। एक सिंगलटन पैटर्न निर्दिष्ट करता है कि एक वर्ग के केवल एक उदाहरण को शुरू किया जा सकता है और इसका उद्देश्य वस्तु तक वैश्विक पहुंच प्रदान करना है।

एक वर्ग का कम से कम एक उदाहरण बनाने का सबसे अच्छा और सरल तरीका सभी निर्माणकर्ताओं को निजी घोषित करना है। फिर वे एक सार्वजनिक विधि बनाते हैं जो वर्ग का अद्वितीय उदाहरण लौटाता है।

// randomUUID फ़ंक्शन का उपयोग करने के लिए। आयात java.util.UUID आयात java.io. * वर्ग सिंगलटन {// यहां हम एकल और आईडी के मानों को शून्य करने के लिए आरंभ करते हैं। निजी स्थिर एकल एकल = अशक्त निजी स्ट्रिंग आईडी = शून्य निजी सिंगलटन () {/ * इसे निजी बनाएं, ताकि सिंगलटन वर्ग के नए उदाहरणों के निर्माण को रोका जा सके। * / // एक यादृच्छिक आईडी बनाएं = UUID.randomUUID () .String ()} सार्वजनिक स्थैतिक सिंगलटन getInstance () {if (सिंगल == null) सिंगल = नया सिंगलटन () सिंगल (पब्लिक रिटर्न सिंगल) Getring () {वापसी this.ID}} // ड्राइवर कोड सार्वजनिक वर्ग TestSingleton {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) {Singleton s = Singleton.getInstance () System.out.println (s.getID ())}} // //

आउटपुट:



null-pointer

स्ट्रिंग को सरणी php में बदल दें

उपरोक्त उदाहरण एकल वर्ग का एक स्थिर उदाहरण है। यह उदाहरण सबसे पहले सिंग्लटन के अंदर इंस्टेंस विधि प्राप्त करने के बाद शुरू होता है।

दशमलव कनवर्टर जावा के लिए द्विआधारी

जावा में अशक्त सूचक अपवाद से कैसे बचें?

जावा में Null Pointer Exception से बचने के लिए, हमें यह सुनिश्चित करना चाहिए कि आपके उपयोग करने से पहले सभी ऑब्जेक्ट्स को ठीक से इनिशियलाइज़ किया गया हो। जब एक संदर्भ चर घोषित किया जाता है, तो हमें सत्यापित करना चाहिए कि कोई वस्तु अशक्त नहीं है और इससे पहले कि हम वस्तुओं से तरीकों या क्षेत्रों का अनुरोध करें। उस समस्या को दूर करने के लिए इसके संगत समाधानों के साथ कुछ समस्याएं हैं।

// प्रोग्राम एक विधि के आह्वान को प्रदर्शित करने के लिए // अशक्त कारणों पर NullPointerException आयात java.io. * वर्ग GFG {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) {// प्रारंभिक स्ट्रिंग वेरिएबल के साथ null String ptr = null //। जाँच हो रही है कि ptr.equals अशक्त है या ठीक काम करता है। कोशिश {// कोड की यह लाइन NullPointerException // फेंकता है क्योंकि ptr शून्य है अगर (ptr.equals ('gfg')) System.out.print ('समान') System.out.print ('Not Same')} पकड़ (NullPointerException e) {System.out.print ('NullPointerException Caught'}}}}

आउटपुट:

एक विधि के तर्क की जाँच रखते हुए

हमेशा याद रखें कि एक नई विधि के शरीर को निष्पादित करने से पहले, हमें अशक्त मूल्यों के लिए अपने तर्क को सुनिश्चित करना चाहिए और विधि के निष्पादन के साथ जारी रखना चाहिए। यदि और केवल जब तर्कों की ठीक से जाँच हो। एल्स, यह एक 'IllegalArgumentException' को फेंक देगा और कॉलिंग विधि को कॉल करेगा कि पारित तर्कों के साथ कुछ गलत है।

// प्रोग्राम यह जांचने के लिए कि क्या पैरामीटर अशक्त हैं या नहीं // उनका उपयोग करने से पहले। आयात java.io. * * वर्ग GFG {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) {// स्ट्रिंग s ने एक रिक्त स्ट्रिंग सेट किया और गेटलिफ्टिंग () स्ट्रिंग s = 'का प्रयास करें {System.out.println (getLength (s)) )} पकड़ (IllegalArgumentException e) {System.out.println ('IllegalArgumentException पकड़ी गई')} // स्ट्रिंग s मान में सेट हो रही है और getLength () s = 'GeeksforGeeks' का प्रयास करें {System.out.println (getLength (s) )} कैच (IllegalArgumentException e) {System.out.println ('IllegalArgumentException पकड़ा')} // // n को null और कॉलिंग getLength () s = null try = System.out.println (getLength (s))} कैच () IllegalArgumentException e) {System.out.println ('IllegalArgumentException पकड़े गए')}} // स्ट्रिंग स्ट्रिंग की लंबाई वापस करने के लिए फ़ंक्शन। यह फेंकता है // IllegalArgumentException अगर s null है। सार्वजनिक स्थैतिक int getLength (स्ट्रिंग s) {if (s == null) नई IllegalArgumentException को फेंक दें ('तर्क शून्य नहीं हो सकता)' s.length () वापस करें

आउटपुट:

टर्नरी ऑपरेटर का उपयोग

टर्नरी ऑपरेटर का उपयोग NullPointerException से बचने के लिए किया जाता है। बूलियन अभिव्यक्ति की जाँच की जाती है और यदि अभिव्यक्ति सही है, तो मान 1 वापस आ जाता है, अन्यथा, value2 वापस आ जाता है। अशक्त बिंदुओं को संभालने के लिए टर्नरी ऑपरेटर का उपयोग किया जा सकता है: सही छवि संबंधित आउटपुट है।

// एक जावा प्रोग्राम यह प्रदर्शित करने के लिए कि हम NullPointerException से बचने के लिए // ternary ऑपरेटर का उपयोग कर सकते हैं। आयात java.io. * वर्ग GFG {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) {// प्रारंभिक मान स्ट्रिंग के साथ शून्य मान स्ट्रिंग स्ट्रिंग = शून्य स्ट्रिंग संदेश = (str == null)? '': str.substring (0,5) System.out.println (संदेश) str = 'Edureka_Java_Blog' संदेश = (str == null)? '': str.substring (0,5) System.out.println (संदेश)}}

आउटपुट:

जावा में एक वर्ग का उदाहरण क्या है

एडुरेक

इसके साथ, हम जावा में Null Pointer Exception के अंत में आते हैं। मुझे उम्मीद है कि आपको Null Pointer Exception का अंदाजा हो गया होगा।

इसकी जाँच पड़ताल करो 250,000 से अधिक संतुष्ट शिक्षार्थियों के एक नेटवर्क के साथ एक विश्वसनीय ऑनलाइन शिक्षण कंपनी, एडुरेका द्वारा, दुनिया भर में फैली हुई है। एडुर्का का जावा J2EE और SOA प्रशिक्षण और प्रमाणन पाठ्यक्रम उन छात्रों और पेशेवरों के लिए डिज़ाइन किया गया है जो जावा डेवलपर बनना चाहते हैं। पाठ्यक्रम आपको जावा प्रोग्रामिंग में एक सिर शुरू करने के लिए डिज़ाइन किया गया है और आपको हाइबरनेट और स्प्रिंग जैसे विभिन्न जावा फ्रेमवर्क के साथ कोर और उन्नत जावा अवधारणाओं दोनों के लिए प्रशिक्षित करता है।

क्या आप हमसे कोई प्रश्न पूछना चाहते हैं? कृपया इस 'Null Pointer Exception in Java' ब्लॉग के कमेंट सेक्शन में उल्लेख करें और हम जल्द से जल्द आपके पास वापस आएँगे।