जब तक कोई कोड लाइन नहीं है, throw new NullPointerException();
नल पॉइंटर्स आमतौर पर तब होते हैं जब null
होने वाली अभिव्यक्ति को संचालित किया जाता है। तो, मेरा सवाल यह है कि, नल पॉइंटर के लिए संदेश में अभिव्यक्ति क्यों नहीं होती है जो शून्य हो रही है?क्यों शून्य सूचक अपवाद अभिव्यक्ति प्रदान नहीं करता है जो शून्य है?
उत्तर
मुझे निश्चित रूप से पता नहीं है, लेकिन मुझे लगता है कि कारण यह है कि यदि JVM को सटीक अभिव्यक्ति की रिपोर्ट करने में सक्षम होना चाहिए तो अपवाद को फेंकने के लिए प्रमुख प्रदर्शन समस्याएं हो सकती हैं।
कम से कम, इसे कक्षा फ़ाइल स्वरूप में परिवर्तन की आवश्यकता होगी (वास्तव में) ठीक अनाज स्रोत कोड स्थिति जानकारी ... लाइन संख्याओं से बेहतर दाग।
वैसे भी, सवाल म्यूट है ... 'क्योंकि यह नहीं है।
सिर्फ इसलिए कि जावा एक प्रोग्रामिंग भाषा है, इसलिए मैं इसके कार्यान्वयन पर सवाल नहीं रोकूंगा! – MozenRath
@MozenRath - ठीक है अगर आप एक असली जवाब चाहते हैं, तो आप गलत लोगों से पूछ रहे हैं। जावा टीम से पूछें। ओटीओएच, यदि आप वास्तव में जावा पर सवाल पूछ रहे हैं (यानी इसकी आलोचना कर रहे हैं) तो SO ऐसा करने के लिए उचित जगह नहीं है; एफएक्यू देखें। –
मुझे यह मिल गया .. धन्यवाद हालांकि! – MozenRath
NullPointerException
तब होता है जब आप null
को हटाना चाहते हैं, न कि जब आप केवल एक बनाते हैं या नहीं करते हैं। स्टैक ट्रेस में रेखा होती है, और यह जितना अच्छा हो जाता है, और JVM वास्तव में नहीं जानता है कि null
कहां से आया है, यह ऐसी चीजों का ट्रैक नहीं रखता है जब यह जितनी जल्दी हो सके बाइटकोड से गुजरने का प्रयास करता है।
आप मुसीबत ऐसी स्थितियों डिबगिंग है, तो आप कर सकते हैं हमेशा विभाजन अभिव्यक्ति और उपयोग अस्थायी चर: 1 रेखा से ऊपर NullPointerException फेंकता
String tmp = myObj.getSomething();
String result = tmp.substring(1);
हैं (स्टैक ट्रेस दिखा के साथ यह है कि लाइन से आया नहीं myObj.getSomething()
के अंदर से), आप जानते हैं कि myObj शून्य था। यदि दूसरी पंक्ति NullPointerException फेंकता है, तो आप जानते हैं कि tmp
शून्य था, यानी myObj.getSomething()
शून्य वापस लौटा। यदि आप देखते हैं कि myObj.getSomething()
वास्तव में सामान्य स्थिति में शून्य हो सकता है, तो आप वहां if (tmp != null) { ... } else { ... }
कोड जोड़ सकते हैं।
पर्याप्त कहा: स्टैक ट्रेस। –
- 1. क्यों String.valueOf (शून्य) शून्य सूचक अपवाद पैदा कर रहा है?
- 2. शून्य सूचक अपवाद
- 3. शून्य सूचक अपवाद प्रारंभिक सेवा
- 4. शून्य सूचक अपवाद apache poi
- 5. एंड्रॉइड glsurfaceview शून्य सूचक अपवाद
- 6. कनेक्टिविटी मैनेजर getActiveNetworkInfo शून्य सूचक अपवाद
- 7. शून्य == सूचक
- 8. शून्य सूचक और शून्य सूचक के बीच क्या अंतर है?
- 9. postsharp अपवाद शून्य है
- 10. एंड्रॉइड ड्रॉवर लेआउट शून्य सूचक अपवाद
- 11. फ़ाइल पर शून्य सूचक अपवाद- यूआरआई?
- 12. एंड्रॉइड पर SQLiteOpenHelper.getWriteableDatabase() शून्य सूचक अपवाद
- 13. एंड्रॉइड GoogleMap या SupportMapFragment - शून्य सूचक अपवाद
- 14. क्यों std :: shared_ptr dereference एक शून्य सूचक अपवाद (या समान) फेंक नहीं देता है?
- 15. जावा: अपवाद स्वयं शून्य है
- 16. सी ++ का अपवाद क्यों कॉलिंग विवरण प्रदान नहीं करता है?
- 17. क्यों एक शून्य सूचक डालना टाइप करें?
- 18. AndroidTestCase.getContext()। GetAplicationContext() वापस शून्य क्यों करता है?
- 19. स्ट्रिंग (शून्य) क्यों काम करता है?
- 20. कुछ भी नहीं! = शून्य - या यह करता है?
- 21. ThreadPoolExecutor के बाद अपवाद() में अपवाद क्यों शून्य है?
- 22. BitmapFactory.decodeByteArray वापस शून्य क्यों करता है?
- 23. क्यों के लिए pthread_create वापसी शून्य * start_routine और ले करता है शून्य *
- 24. क्यों `nil` के प्रकार` id` लेकिन `नहीं है शून्य *`
- 25. यह शून्य ** का उपयोग क्यों करता है?
- 26. सी ++ में शून्य सूचक क्या है?
- 27. इटरेटर शून्य सूचक के बराबर है?
- 28. क्यों NSDictionary शून्य है?
- 29. शून्य संरचना क्यों है?
- 30. क्यों HttpContext.Current.Handler शून्य है?
क्या आप यह जानने के लिए कुछ उदाहरण पोस्ट कर सकते हैं कि आप क्या पूछने की कोशिश कर रहे हैं? स्टैक ट्रेस लाइन नंबर प्रदान करता है जहां अपवाद होता है। –
ऑप्टिमाइज़ेशन, आदि के चेहरे में, जो आमतौर पर रनटाइम पर जाना जाता है, "यह चीज जो संदर्भ होने के लिए थी, वास्तव में 'शून्य' है। उस संदर्भ को अतीत में किसी भी समय, कहीं और गणना की गई हो सकती है। –