جاوا میں نال پوائنٹر استثنیٰ: عمل درآمد اور مثالوں



یہ مضمون آپ کو ایک تفصیلی اور جامع معلومات فراہم کرے گا کہ نول پوائنٹر استثنیٰ جاوا میں کس طرح کی مثالوں سے بھرا ہوا ہے۔

ہموار چلانے والے کوڈ کے لئے مستثنیات کی ضرورت ہے اور پروگرامرز کو حل ہونے کی غلطی سے آگاہ کریں۔ اس مضمون میں ، ہم جاوا میں نول پوائنٹر استثنیٰ پر مندرجہ ذیل ترتیب پر توجہ دیں گے:

جاوا میں نول پوائنٹر استثناء کیا ہے؟





جاوا میں کیل پوائنٹر کی رعایت رن ٹائم مستثنیٰ ہے۔ جاوا کی دنیا میں ، آبجیکٹ کے حوالے کے ل to ایک خاص نول ویلیو تفویض کیا جاتا ہے۔ نول پوائنٹر استثنیٰ اس وقت متعارف کرایا جاتا ہے جب ایک پروگرام کسی شے کے حوالہ کو استعمال کرنے کی کوشش کرتا ہے ، جس میں قدر کی قیمت ہوتی ہے۔ جو ہوسکتا ہے:

  • کسی اشخاص سے کسی خاص طریقے کا مطالبہ کرنا۔
  • کسی کالعدم شے کے فیلڈ تک رسائی یا اس میں ترمیم کرنے کیلئے۔
  • کال کی لمبائی پر غور کرکے ، گویا یہ صف ہے۔
  • کسی کالعدم شے کی سلاٹ تک رسائی یا ترمیم کرتے ہوئے۔
  • پھینک دینے والی قدر کی طرح پھینکنا۔
  • کسی کالعدم شے پر ہم وقت سازی کرنے کی کوشش کر رہا ہے۔

ہمیں کیوں قیمت کی ضرورت ہے؟



نول جاوا میں مستعمل ایک انوکھی قیمت ہے۔ کیل کو یہ ظاہر کرنے کے لئے استعمال کیا جاتا ہے کہ حوالہ متغیر کے لئے کوئی قیمت تفویض نہیں کی گئی ہے۔ منسلک فہرستوں اور درختوں جیسے اعداد و شمار کے ڈھانچے کو نافذ کرنے میں کال کی بنیادی درخواست ہے۔ کچھ دوسری ایپلی کیشنز میں کالے شے کے نمونے اور سنگلٹن نمونے شامل ہیں۔ ایک سنگلٹن نمونہ یہ بتاتا ہے کہ کلاس کی صرف ایک مثال شروع کی جاسکتی ہے اور اس کا مقصد مقصد تک عالمی سطح تک رسائی حاصل کرنا ہے۔

کلاس کی کم از کم ایک مثال بنانے کے لئے سب سے عمدہ اور آسان طریقہ یہ ہے کہ تمام تعمیر کنندگان کو نجی قرار دیا جائے۔ پھر وہ ایک ایسا عوامی طریقہ تشکیل دیتے ہیں جو کلاس کی انوکھی مثال واپس کرتا ہے۔

// بے ترتیب UID فنکشن استعمال کرنے کے لئے۔ java.util.UID درآمد java.io. * کلاس سنگلٹن {// یہاں ہم سنگل اور ID کی قدروں کو کالعدم کرتے ہیں۔ نجی جامد سنگلٹن سنگل = منسوخ نجی اسٹرنگ ID = منسوخ نجی سنگلٹن () {/ * سنگلٹن کلاس کی نئی مثالوں کی تخلیق کو روکنے کے لئے ، اسے نجی بنائیں۔ * / // ایک بے ترتیب ID ID بنائیں = UID.randomUUID (). toString ()} عوامی جامد سنگلٹن getInstance () {اگر (سنگل == منسوخ) سنگل = نیا سنگل () سنگل لوٹ} عوامی سٹرنگ getID () {واپسی this.ID ID} // ڈرائیور کوڈ پبلک کلاس ٹیسٹسنٹنگٹن {عوامی جامد باطل اہم (سٹرنگ [] آرگس) {سنگلٹن s = Singleton.getInstance () System.out.println (s.getID ())}} //

آؤٹ پٹ:



null-pointer

c ++ فبوناکسی recursive

مذکورہ بالا مثال سنگلٹن کلاس کی مستحکم مثال ہے۔ مثال کے طور پر سنگلٹن حاصل مثال کے طریقہ کار میں زیادہ سے زیادہ ایک بار شروع کیا جاتا ہے۔

ایک iterator استعمال کرنے کے لئے کس طرح

جاوا میں نال پوائنٹر استثنا سے کیسے بچنا ہے؟

جاوا میں نول پوائنٹر استثنا سے بچنے کے ل we ، ہمیں یہ یقینی بنانا ہوگا کہ آپ استعمال کرنے سے پہلے تمام اشیاء کو صحیح طور پر ابتدا میں لے آئیں۔ جب ایک حوالہ متغیر کا اعلان کیا جاتا ہے ، تو ہمیں اس بات کی تصدیق کرنی ہوگی کہ کوئی شے کالعدم نہیں ہے اور اس سے پہلے کہ ہم اشیاء سے طریقوں یا قطعات کی درخواست کریں۔ اس پریشانی پر قابو پانے کے ل. اس کے متعلقہ حل کے ساتھ کچھ مسائل درج ذیل ہیں۔

// پروگرام کے طریقہ کار کی نشاندہی کرنے کا پروگرام // نول وجوہات کے خلاف NullPointerException درآمد java.io. * کلاس GFG {عوامی جامد باطل اہم (سٹرنگ [] آرگس) {// اسٹرنگ متغیر کو کالعل قیمت کے ساتھ شروع کرنا ptr = null // جانچ پڑتال اگر ptr.equals کالعدم ہے یا ٹھیک کام کرتا ہے۔ کوشش کریں {// کوڈ کی اس لائن نے NullPointerException کو پھینک دیا // کیونکہ ptr ناخن ہے اگر (ptr.equals ('gfg')) System.out.print ('Same') ورنہ System.out.print ('وہی نہیں')} کیچ (NullPointerException e) {System.out.print ('NullPointerException Caught')}}}

آؤٹ پٹ:

کسی طریقہ کار کے دلائل کی جانچ پڑتال کرنا

ہمیشہ یاد رکھیں کہ کسی نئے طریقہ کار کو عملی جامہ پہنانے سے پہلے ، ہمیں اس کے دلائل کو باطل اقدار کے لئے یقینی بنانا چاہئے اور اس طریقہ کار پر عملدرآمد جاری رکھنا چاہئے۔ اگر اور صرف اس صورت میں جب دلائل کو صحیح طریقے سے جانچا جائے۔ بصورت دیگر ، یہ 'IllegalArgumentException' پھینک دے گا اور کال کرنے کا طریقہ کال کرے گا کہ منظور شدہ دلائل میں کچھ غلط ہے۔

// پروگرام دیکھنے کے لئے کہ آیا پیرامیٹر کالعدم ہیں یا نہیں // ان کے استعمال سے پہلے۔ درآمد java.io. * کلاس GFG {عوامی جامد باطل اہم (سٹرنگ [] آرگس) {// سٹرنگز نے ایک خالی تار ڈالا اور getLength () سٹرنگ s = '' کوشش کریں {System.out.println (getLength (s) کال کریں )} کیچ (IllegalArgumentException e) {System.out.println ('IllegalArgumentException ধরা')} // اسٹرنگز سیٹ کو ویلیو پر سیٹ کریں اور getLength () s = 'GeeforforGeks' کوشش کریں {System.out.println (getLength (s) )} کیچ (IllegalArgumentException e) {System.out.println ('IllegalArgumentException پکڑا گیا')} // s کو کال کی حیثیت سے مقرر کرنا اور getLength () s = null کوشش کرنا {System.out.println (getLength (s))} کیچ ( غیرقانونی ارگمنٹ ایکسیپشن ای). System.out.println ('IllegalArgumentException پکڑا گیا')}} // اسٹرنگ s کی لمبائی واپس کرنے کا فنکشن۔ اگر وہ غیر قانونی ہے تو // IllegalArgumentException پھینک دیتا ہے۔ عوامی جامد int getLength (سٹرنگز) {اگر (s == null) نیا غیر قانونی اثر پھینک دیں ('دلیل کالعدم نہیں ہوسکتی ہے') کی واپسی کی لمبائی ()}}

آؤٹ پٹ:

ازگر کلاسوں اور اشیاء کی مثالیں

ٹرنری آپریٹر کا استعمال

نولپائنٹر ایکسپریشن سے بچنے کے لئے ایک ٹرنری آپریٹر استعمال ہوتا ہے۔ بولین اظہار کی جانچ پڑتال کی جاتی ہے اور اگر اظہار درست ہوتا ہے تو ، ویلیو 1 واپس ہوجاتا ہے ، بصورت دیگر ، ویلیو 2 لوٹ جاتا ہے۔ نل پوائنٹرس کو سنبھالنے کے لئے ٹرنری آپریٹر استعمال کیا جاسکتا ہے: دائیں امیج اسی آؤٹ پٹ کی ہے۔

// جاوا پروگرام کا مظاہرہ کرنے کے لئے کہ ہم NullPointerException سے بچنے کے لئے // ترنری آپریٹر استعمال کرسکتے ہیں۔ درآمد java.io. * کلاس GFG {عوامی جامد باطل اہم (سٹرنگ [] آرگس) {// اسٹرنگ متغیر کی ابتدا کرنا ناجائز سٹرنگ str = null سٹرنگ میسج = (str == null) کے ساتھ؟ '': str.substring (0،5) System.out.println (message) str = 'ایڈورکا_جاوا_ بلاگ' پیغام = (str == null)؟ '': str.substring (0،5) System.out.println (پیغام)}

آؤٹ پٹ:

ایڈورک

اس کے ساتھ ، ہم جاوا میں نال پوائنٹر استثنیٰ کے اختتام پر پہنچے ہیں۔ مجھے امید ہے کہ آپ کو نول پوائنٹر استثنیٰ کا اندازہ ہوگا۔

چیک کریں ایڈوریکا کے ذریعہ ، ایک قابل اعتماد آن لائن سیکھنے والی کمپنی جس کی دنیا بھر میں 250،000 سے زیادہ مطمئن سیکھنے والوں کا نیٹ ورک موجود ہے۔ ایڈورکا کا جاوا J2EE اور SOA ٹریننگ اور سرٹیفیکیشن کورس طلباء اور پیشہ ور افراد کے لئے ڈیزائن کیا گیا ہے جو جاوا ڈویلپر بننا چاہتے ہیں۔ کورس آپ کو جاوا پروگرامنگ میں آغاز فراہم کرنے اور ہائبرنیٹ اینڈ اسپرنگ جیسے جاوا کے مختلف فریم ورکوں کے ساتھ ساتھ جاوا کے دونوں بنیادی خیالات کے ساتھ تربیت دینے کے لئے ڈیزائن کیا گیا ہے۔

ہمارے لئے ایک سوال ہے؟ برائے کرم اس 'جاوا میں نول پوائنٹر استثنیٰ' بلاگ کے تبصرے سیکشن میں اس کا تذکرہ کریں اور ہم جلد از جلد آپ کے پاس مل جائیں گے۔