کمپیوٹرزپروگرامنگ

جاوا: استثناء اور ان کی ہینڈلنگ

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

جب آپ استثنا کو سنبھالنے کی ضرورت ہوسکتی ہے

جاوا میں، استثناء غلط صارف کے ان پٹ کی وجہ سے ہوسکتی ہے، پروگرام کو چلانے کے لئے ضروری وسائل کی کمی، یا نیٹ ورک کی اچانک غیر منحصر ہے. ڈویلپر کی طرف سے پیدا ہونے والی درخواست کے آرام دہ اور پرسکون استعمال کے لئے، غیر معمولی حالات کی صورت کو کنٹرول کرنے کے لئے ضروری ہے. صارفین کو بھوک پروگرام کا انتظار نہیں کرنا چاہئے، اس کے کام کو مکمل کرنے کے لۓ، غیر منحصر استثناء کے نتیجے میں ڈیٹا کو کھو دینا، یا صرف اکثر اکثر پیغامات دکھائے جائیں جو کچھ غلط ہوا.

جاوا استقبال ہینڈلنگ

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

جاوا میں، اس طرح کے استثناء کو پکڑنے والا اس مجموعہ سے لگایا جاتا ہے، لہذا عام مسائل کو معلوم ہوتا ہے اور ان کی اپنی معیاری عملدرآمد اسکیم ہے.

عام استثنائی

سب سے آسان مثال جس میں آپ استثنا حاصل کرسکتے ہیں تقسیم ہے. اس کے تمام سادگی کے باوجود، اظہار میں، تقسیم کے طور پر، صفر ہوسکتا ہے، جس میں ایک غلطی ہو گی. ٹھیک ہے، اگر اس کی ظاہری شکل پہلے پیش کی جا سکتی ہے اور اس کی روک تھام کی جا سکتی ہے. لیکن یہ اختیار ہمیشہ دستیاب نہیں ہے، لہذا جب "صفر کی تقسیم" ہوتی ہے تو اسے پکڑنے والی استثنا کو منظم کرنا لازمی ہے.

جاوا میں، غلطی کو سنبھالنے والے میکانیزم اس طرح لگ رہا ہے:

  • صابن میں ایک استثناء چیز، اس کے ساتھ ساتھ کسی اور کے ساتھ پیدا ہوتا ہے.
  • پروگرام کے قدرتی کورس میں روکا جاتا ہے؛
  • کوڈ جاری رکھنے کے لۓ متبادل راہ تلاش کرنے کی استثنا میکانزم
  • ہینڈلر میں پروگرام کے محفوظ پھانسی کی جگہ تلاش کرنا، کام کو بحال کیا جائے گا، یا خاص طور پر کسی استثناء کو لاگو کیا جائے گا.

ایک غلطی پیدا کرنے کا سب سے آسان مثال اس طرح نظر آتا ہے:

اگر (= = نیلا)

نئے NullPointerException پھینک دیں ()؛

یہاں متغیر کے لئے متغیر ایک جانچ پڑتال کی گئی ہے، یعنی نچلے حوالہ کے برابر نہیں ہے. اس واقعہ میں یہ صورت حال ہوتی ہے اور خاص پروسیسنگ کی ضرورت ہوتی ہے، ایک نوکری نوان نولپینٹر ایکسچینج پھینکنے کے ساتھ پھینک دیا جاتا ہے ().

مطلوبہ الفاظ کے بارے میں کچھ تفصیلات

استثناء کے ساتھ کام کرتے وقت، آپ کو اکثر ایک جاوا اسکرپٹ کو استعمال کرنے کے لۓ استعمال کرنا ہوگا. اس پروگرامنگ زبان میں ان میں سے پانچ ہیں:

  • کوشش کریں اس مطلوبہ الفاظ کو پہلے سے ہی سامنا کرنا پڑا ہے اور اس کا مطلب یہ کوڈ کا ایک حصہ ہے جس سے کسی استثنا کو پھینک دیا جا سکتا ہے. بلاک گھوبگھرالی برائٹس تک محدود ہے {}.
  • پکڑو اس کے مطابق استثناء کی مناسب قسم اور اس کے مطابق عمل کیا جاتا ہے.
  • آخر میں یہ مطلوبہ الفاظ اختیاری ہے اور کسی بھی صورت میں ضروری کوڈ کی ایک ٹکڑا پر عملدرآمد کرنے کے لئے کام کرتا ہے، یہاں تک کہ اگر کوئی استثنا نہیں منفی ہے. کوشش کو روکنے کے بعد اسے فوری طور پر شامل کیا جاتا ہے.
  • پھینک دیں - آپ کوڈ میں کہیں بھی جاوا استثناء تخلیق کرنے کی اجازت دیتا ہے.
  • تھرو ایک مطلوبہ الفاظ ہے جسے طریقہ دستخط میں رکھا جاتا ہے. اس کا مطلب ہے کہ بعد میں کوڈ مخصوص قسم کے جاوا استثناء کو پھیل سکتا ہے. یہ لیبل ڈویلپرز کے لئے ایک سگنل کے طور پر کام کرتا ہے، آپ کو ذہن میں رکھنے کی ضرورت ہے - طریقہ ممکن ہو تو متوقع طور پر کام نہیں کرسکتا.

کوشش کے ساتھ پکڑو

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

جاوا میں، کوڈ ایک خاص کوشش کے بلاک میں لپیٹ ہے، جس میں سے ایک استثنا پھینک دیا جا سکتا ہے. اس طرح، کئی غیر معمولی حالات اس میں رکھی جاتی ہیں، جو کوڈ کے ساتھ جڑے ہوئے بغیر، ایک جگہ میں پکڑے جائیں گے.

پروسیسنگ بلاک کے ساتھ سب سے زیادہ عام کوڈ ایسا لگتا ہے:

کوشش کریں {

// یہ کوڈ کا تعین کرے گا جو کسی رعایت کو پھینک سکتا ہے

} پکڑو (نکالنے_1_1 شناخت کنندہ_1) {

// یہاں اس کی قسم اور حالات کے مطابق، استثناء پر عملدرآمد کیا جاتا ہے؛

} پکڑو (نکالنے_ٹائپ_2 شناخت کنندہ_2) {

// یہاں اس کی قسم اور حالات کے مطابق، استثناء پر عملدرآمد کیا جاتا ہے؛

}

پکڑنے والی مطلوبہ الفاظ کو یہ بتاتا ہے کہ رعایت کی جانچ پڑتال والے کوڈ کو ذیل میں بیان کیا جاسکتا ہے، اس کے مطابق یہ اس کی قسم سے ملتا ہے. شناختی کارکن پروسیسنگ کوڈ بلاک کے اندر دلائل کے طور پر استعمال کیا جا سکتا ہے.

آخر میں

جیسا کہ پچھلے باب سے واضح ہو گیا ہے، پکڑو بلاکس استثناء کو پکڑ کر ان پر عمل کرتے ہیں. لیکن اکثر اس صورت حال کی صورت حال ہے جب کسی کوڈ کو عمل کرنا چاہئے، قطع نظر کو غلطیاں پکڑے گئے ہیں. اس کے لئے آخر میں مطلوبہ الفاظ موجود ہیں. یہ نیٹ ورک پر مختلف کاؤنٹر، قریبی فائلوں یا کنکشن کے اقدار کو بڑھانے کے لئے استعمال کیا جاتا ہے.

اس سیکشن میں، استثنا کو پکڑنے کے ایجاد طریقوں کے ساتھ کئی پکڑنے والی بلاکس موجود ہیں. مثال کے طور پر، کوشش میں موجود کوڈ سردی قسم کی غیر متوقع صورت حال پیدا کرتا ہے. پھر اظہار "سردی پھنسے!" اور "کیا اس کے بارے میں جاننا کچھ ہے؟" کنسول میں پیش کیا جائے گا. یہی ہے، آخر میں کسی بھی صورت میں بلاک عملدرآمد کیا جاتا ہے.

حقیقت میں، آخر میں چلانے سے بچنے کے لئے ایک طریقہ ہے. یہ مجازی مشین کے خاتمے سے متعلق ہے. معلوم کریں کہ یہ کیسے انٹرنیٹ پر کیا جا سکتا ہے.

فلا مطلوبہ الفاظ

پھینک دو اس کے نحوق اس طرح لگتے ہیں:

نئے NewException پھینک دیں ()؛

یہاں، نیا استقبال قسم () کے ساتھ ایک نئی استثنا پیدا ہوتا ہے. ایک قسم کے طور پر، آپ کو پہلے سے ہی معیار جاوا لائبریریوں میں شامل کلاسوں کا استعمال کر سکتے ہیں اور آپ کی اپنی پیداوار کے ڈویلپر کی طرف سے پہلے بیان کیا جا سکتا ہے.

اس طرح کی تعمیر کسی بھی طریقہ کی وضاحت میں شامل کی جاتی ہے، جس کے بعد اس کا مطالبہ کرنے کے قابل ہونے کے لۓ اس کے کال میں کوشش کی جائے گی.

مطلوبہ الفاظ پھینک دیتا ہے

ترقیاتی عمل میں اگر ایسا ہوتا ہے تو ایسی صورت حال ہے جہاں طریقہ کسی استثناء کو پھینک سکتا ہے، لیکن اسے صحیح طریقے سے سنبھال نہیں سکتا. ایسا کرنے کے لئے، دستخط دستخط لفظ کو پھینک دیتا ہے اور ممکنہ استثنا کی قسم.

یہ لیبل کلائنٹ کے ڈویلپرز کے لئے ایک قسم کے پوائنٹر ہے کہ طریقہ اس کی اپنی استثناء کی پروسیسنگ کے قابل نہیں ہے. اس کے علاوہ، اگر غلطی کی قسم کی توثیق کی جاتی ہے، تو اس کا پتہ لگانے والا واضح طور پر اس کی وضاحت کرے گا.

وسائل کے ساتھ کوشش کریں

جاوا ورژن 7 میں، ڈویلپرز نے وسائل کے ساتھ کوشش کے عمل کی پروسیسنگ کے طور پر ایسی اہم جدت شامل کی ہے.

جاوا میں تخلیق کردہ بہت سے اشیاء، ان کے استعمال کے بعد، وسائل کو بچانے کے لئے بند ہونا ضروری ہے. پچھلا، آپ کو دستی طور پر اس طرح کے معاملات کا حساب دینا اور بند کرنا پڑا. اب ان کے پاس ایک انٹرفیس آٹوسلوبل ہے. آزمائشی بلاک میں رکھ دیا جاتا ہے، یہ خود بخود پہلے سے ہی استعمال شدہ اشیاء کو بند کرنے میں مدد ملتی ہے. اس نقطہ نظر کا شکریہ، یہ کوڈ لکھنے کے لئے زیادہ آسان بن گیا، اس کے پڑھنے کی اہلیت میں نمایاں اضافہ ہوا.

اپنی مرضی کے جاوا رعایت کی کلاسیں

بیان کردہ پروگرامنگ زبان کے تخلیق کاروں نے غیر معمولی حالات کی نوعیت کو ڈیزائن کرتے ہوئے کئی پہلوؤں کو اکاؤنٹ میں لے لیا. تاہم، واقعات کے نتیجے کے تمام متغیرات کو روک دیا جاسکتا ہے، لہذا جاوا میں، ان کی اپنی استثناء کا تعین کرنا ممکن ہے جو مخصوص کوڈ کی ضروریات کے لئے موزوں ہے.

تخلیق کرنے کا سب سے آسان طریقہ سیاق و ضوابط کے مطابق سب سے زیادہ موزوں میراث ہے.

یہاں آپ کو استثنائی سے وراثت ملتی ہے، جو اس کی اپنی استثناء کی وضاحت کرنے کے لئے استعمال ہوتا ہے. MyException میں دو عمارات ہیں - ایک ڈیفالٹ کے ذریعہ، دوسرا - پیغام کی قسم سٹرنگ کے دلیل کے ساتھ.

پھر عوامی طبقے مکمل کنسٹرکٹر میں، طریقہ کار کو لاگو کیا جاتا ہے، جس میں دستخط MyException پھینک دیتا ہے. اس مطلوبہ الفاظ کا مطلب یہ ہے کہ F جاوا جا سکتا ہے. اس کے علاوہ، طریقہ کار کے جسم میں، ٹیکس کی معلومات پھول کے ذریعہ کنسول اور MyException کی حقیقی نسل پیداوار ہے.

دوسرا طریقہ پہلے میں سے تھوڑا مختلف ہے جس میں جب کسی استثنا کو پھینک دیا جاتا ہے، تو اس کا ایک پیرامیٹر منظور ہوجاتا ہے، جس میں کنسول میں قبضہ کر لیا جائے گا. بنیادی طور پر، آپ کو یہ دیکھتے ہیں کہ f () اور جی () کوشش کے بلاک میں رکھی جاتی ہے، اور پکڑنے والے مطلوبہ الفاظ MyException کو پکڑنے کے لئے مقرر کیا جاتا ہے. پروسیسنگ کا نتیجہ کنسول میں غلطی کا پیغام ہے.

اس طرح، اپنے ہاتھ سے پیدا جاوا استثناء کو شامل کرنا ممکن تھا.

استثنا فن تعمیر

جاوا میں تمام اشیاء کی طرح، استثنا بھی وراثت مند ہیں اور ایک عمودی ساختہ بناتے ہیں. اس پروگرامنگ زبان میں تمام غلطیوں کا جڑ عنصر java.lang.Throwable کلاس ہے. یہ دو قسم کی وراثت ہے - خرابی اور استثنی.

خرابی - اہم غلطیوں کے بارے میں مطلع کیا گیا ہے اور غیر انوکھا جاوا استثناء کی نمائندگی کرتا ہے. زیادہ تر مقدمات میں اس طرح کے اعداد و شمار کے انفیکشن اور پروسیسنگ ترقیاتی مرحلے پر ہوتی ہے اور حتمی درخواست کے کوڈ میں لاگو کرنے کی ضرورت نہیں ہے.

استثنی پیدا کرنے اور تجزیہ کرنے کے لئے سب سے عام طور پر استعمال شدہ کلاس استثنی ہے. جس کے نتیجے میں، RuntimeException سمیت کئی شاخوں میں تقسیم کیا جاتا ہے. RuntimeException رن ٹائم مستثنیات سے مراد ہے، جو پروگرام چل رہا ہے، وہ جو ہوتا ہے. اس سے وراثت کی تمام کلاس ناقابل قبول ہیں.

عام استثناء

جاوا استثناء میں، جس کی فہرست ذیل میں پیش کی گئی ہے، اکثر اکثر استعمال کیا جاتا ہے، لہذا یہ ان میں سے ہر ایک کو مزید تفصیل سے بیان کرنے کے قابل ہے:

  • ارتھیٹیٹک ایکسپوسپریس. اس میں ریاضی عملیات سے متعلق غلطیاں شامل ہیں. سب سے زیادہ اہم مثال صفر کی تقسیم ہے.
  • ArrayIndexOutOfBoundsException - اس کی مجموعی لمبائی سے زیادہ ہے کہ صف کے عنصر کی تعداد تک رسائی.
  • ArrayStoreException - ایک ناممکن قسم کے ایک عنصر کو تفویض کرنے کی کوشش.
  • ClassCastException ایک قسم کو ایک قسم کو کسی دوسرے کو غلط کرنے کی کوشش ہے.
  • غیر قانونی ArgumentException - طریقہ کار میں غلط دلیل کا استعمال.
  • منفی سائز کی صف تشکیل دیتے وقت منفی ArraySizeException ایک استثناء ہے.
  • NullPointerException - نپل ریفرنس کا غلط استعمال.
  • NumberFormatException - اس وقت ہوتی ہے جب تار کسی نمبر میں تبدیل نہیں ہوتا ہے.
  • غیر مستحکم اوپنشنسپیز - آپریشن کی حمایت نہیں کی جاتی ہے.

یہ مثال جاوا استثناء کی غیر مربوط اقسام ہیں. اور اس طرح کی جانچ پڑتال کی:

  • ClassNotFoundException - کلاس نہیں ملا.
  • غیر قانونی استحصال کا استقبال - کلاس تک رسائی محدود.
  • مداخلت کا تصور - بہاؤ کی رکاوٹ.
  • NoSFFieldException - ضروری فیلڈ موجود نہیں ہے.

استثنا کی تشریح

عام استثناء کے بارے میں بات کرنا، یہ محسوس ہونا چاہئے کہ ترقی کے دوران ان کی تشریح غلطی کی جا سکتی ہے. اگلا، ایک غیر معمولی صورت حال پیدا ہوسکتی ہے جب کسی اور فہرست میں مزید وضاحت کی وضاحت کی گئی ہے.

NullPointerException. پہلی بار جب ایک استثناء ہوتی ہے تو اس اعتراض کو حوالہ دینا ہے کہ سست ہے. یہ بھی کلاس کے صفر مثال کے طریقوں پر بھی لاگو ہوتا ہے. NullPointerException پھینک دیا جا سکتا ہے اور اگر صف کی لمبائی نالی کے برابر ہے. ایسی صورت حال سے دور رہیں جو غیر معمولی اشیاء کو چیک کرنے کے لۓ.

ArrayIndexOutOfBoundsException. arrays استعمال کرنے کے بغیر کوئی پروگرام موجود نہیں ہوسکتا ہے. اس کے مطابق، ان کے بار بار ایک حوالہ جات غلطی میں اضافہ کر سکتے ہیں. ایک رعایت ہوتی ہے جب ڈویلپر کسی ایسی عنصر تک رسائی حاصل کرنے کی کوشش کرتا ہے جو انڈیکس فہرست میں نہیں ہے. مثال کے طور پر، درخواست کی قیمت صفر سے لمبائی یا کم سے کم ہے. یہ اکثر حقیقت یہ ہے کہ صف میں شمار صفر سے شروع ہوتا ہے کے نتیجے کے طور پر ظاہر ہوتا ہے.

نتیجہ

استثنا ہینڈلنگ جاوا ایک طاقتور ماحولیاتی آلے ہے جو پروگرامر کے کام کو بہت سہولت دیتا ہے اور اسے صاف اور غلطی سے پاک کوڈ بنانے کی اجازت دیتا ہے. ڈویلپر کمپنی کی حیثیت اور ساکھ پر منحصر ہے کہ کس طرح آسانی سے اور درخواست کی افعال کو یقینی بناتا ہے.

ظاہر ہے، زیادہ یا کم سادہ پروگراموں میں، فری لانس حالات کا سراغ لگانا بہت آسان ہے. لیکن کئی خود کار طریقے سے پیچیدہ پیچوں میں کئی لاکھ لائنوں کے لئے، یہ صرف طویل مدتی ڈیبگنگ اور ٹیسٹنگ کے نتیجے میں ممکن ہے.

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

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ur.delachieve.com. Theme powered by WordPress.