मुझे अभी बहुत अजीब NullPointerException
मिला है। सबसे पहले, मैं बनाने के एक NumberFormat
इस तरह (ध्यान दें कि डिफ़ॉल्ट Locale
जर्मनी हो सकता है, कि अगर मदद करता है मैं नहीं जानता):NumberFormat.format क्यों एक NullPointerException फेंक देता है?
NumberFormat angleFormat = NumberFormat.getNumberInstance(Locale.UK);
angleFormat.setMaximumFractionDigits(5);
angleFormat.setMinimumFractionDigits(0);
फिर, मैं इसके साथ एक डबल फ़ॉर्मेट करने के लिए कोशिश की। यह एक लैम्ब्डा द्वारा बनाई गई एक नई थ्रेड के साथ किया जाता है, जबकि angleFormat
लैम्ब्डा युक्त विधि में घोषित किया जाता है। कोड जहां अपवाद फेंक दिया जाता है इस प्रकार है:
con.println("D" + moveId + (state.isEnemyInSightOf(e) ? "+" : "-")
+ angleFormat.format(e.getAngle()) // line 123 - error is here
+ (state.isMissileInSightOf(e) ? "+" : "-")
+ angleFormat.format(e.getSight())
+ (e.getLastShot() >= 10 || e.getLastShot() <= -1 ? "+" : "-")
+ angleFormat.format(e.getLives()));
e.getAngle()
रिटर्न एक double
, तो यह शून्य वापस नहीं लौट सकते। हालांकि, मैं इस अपवाद प्राप्त करें:
Exception in thread "Thread-1" java.lang.NullPointerException
at java.text.DecimalFormat.fastDoubleFormat(Unknown Source)
at java.text.DecimalFormat.fastFormat(Unknown Source)
at java.text.NumberFormat.format(Unknown Source)
at server.game.Simulator.lambda$0(Simulator.java:123)
at server.game.Simulator$$Lambda$3/23162747.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
मुझे यकीन है कि e
अपवाद के स्टैकट्रेस की वजह से रिक्त नहीं है कर रहा हूँ, यह एक) एक पंक्ति पहले फेंक दिया जाएगा और ख) java.text.DecimalFormat.fastDoubleFormat
क्यों NullPointerException
बीइंग कभी-कभी फेंक दिया जाता है, और कभी-कभी यह बिना किसी समस्या के काम करता है? और उसका क्या मतलब है? त्रुटि पुन: उत्पन्न होने लगती है, लेकिन अक्सर नहीं।
वह 123 पंक्ति क्या है? –
'" नलपोइंटर एक्सेप्शन कभी-कभी फेंक दिया जाता है, और कभी-कभी यह बिना किसी समस्या के काम करता है? और इसका क्या मतलब है? "- यह अंतराल त्रुटि थ्रेडिंग मुद्दे की गंध करता है। क्या यह एक जीयूआई है? क्या आप अपने कोड के थ्रेडिंग से सावधान हैं? –
क्या आप निश्चित हैं कि 'ई' स्वयं 'शून्य' नहीं है? – Mureinik