علم بمقابلہ ہنر
کالج نے ہمیں سکھایا کہ تھیوری اور پریکٹس میں کوئی بڑا فرق نہیں ہے۔ ٹھیک ہے، یقینا آپ سمجھتے ہیں کہ یہ ایک ہی نہیں ہے. لیکن آپ کو بنیادی فرق نظر نہیں آتا۔ پھر بھی ایک ہے۔ زیادہ تر لوگ "میں جانتا ہوں" اور "میں کر سکتا ہوں" کے درمیان مساوات کا نشان لگاتے ہیں۔ کیا آپ؟ چند مثالوں کے بارے میں کیا خیال ہے؟- میں جانتا ہوں کہ سگریٹ نوشی میرے لیے بری ہے، لیکن میں سگریٹ نوشی کرتا ہوں۔
- میں جانتا ہوں کہ فاسٹ فوڈ میرے لیے برا ہے، لیکن میں اسے کھاتا ہوں۔
- مجھے ٹریفک کے ضابطے معلوم ہیں لیکن میں گاڑی نہیں چلا سکتا۔
- میں جانتا ہوں کہ جاگنگ میرے لیے اچھا ہے لیکن میں صبح جاگنگ نہیں کرتا۔
آپ ایک نئی سطح پر پہنچ گئے ہیں۔
لیول 9
1 ریشہ، اسٹیک ٹریس
- ارے! آج میں آپ کو بتاؤں گا کہ اسٹیک ٹریس کیا ہے۔ لیکن پہلے میں آپ کو بتاتا ہوں کہ اسٹیک کیا ہے۔ - کاغذات کے ڈھیر کا تصور کریں - ایک مخصوص کلرک کے لیے اسائنمنٹس۔ اسٹیک کے اوپری حصے پر ایک نئی اسائنمنٹ ڈالی جا سکتی ہے، اور وہ اسٹیک کے اوپری حصے سے اسائنمنٹ لے گا۔ اس طرح، اسائنمنٹ پہلے آئیے پر نہیں کیے جائیں گے۔ ہر بار کلرک اسائنمنٹ لیتا ہے جو آخری آتا ہے۔ مجموعہ کی ایسی ساخت کو اسٹیک کہا جاتا ہے ۔ - جاوا میں، ایک خاص مجموعہ ہے - اسٹیک۔ اس مجموعے میں "ایک عنصر شامل کریں" اور "ایک عنصر کو لے جائیں (حاصل کریں/ لے جائیں)" کے طریقے ہیں۔ جیسا کہ آپ پہلے ہی جانتے ہیں، شامل کردہ آخری عنصر پہلے لیا جائے گا۔ - ہم یہ مشکل نہیں ہے، مجھے لگتا ہے۔ - ٹھیک. پھر میں وضاحت کرتا ہوں کہ اسٹیک ٹریس کیا ہے۔ - تصور کریں کہ جاوا فنکشن میں А فنکشن B کو کال کرتا ہے ، اور بعد میں فنکشن C کو کال کرتا ہے ، جو کہ اس کے نتیجے میں، فنکشن D کو کال کرتا ہے ۔ لہذا، فنکشن B سے باہر نکلنے کے لیے ، آپ کو پہلے فنکشن C سے باہر نکلنا ہوگا ، اور ایسا کرنے کے لیے آپ کو فنکشن D سے باہر نکلنا ہوگا ۔ یہ اسٹیک سے بہت ملتا جلتا ہے۔ - اور کیا مماثلت ہے؟ - اسٹیک میں، کسی خاص اسائنمنٹ تک پہنچنے کے لیے، آپ کو اوپر رکھے گئے تمام اسائنمنٹس کو بھی مکمل کرنا ہوگا۔ - ٹھیک ہے، یہ ایک طرح کی مشابہت ہے، لیکن مجھے یقین نہیں ہے کہ میں سب کچھ ٹھیک سمجھتا ہوں۔ - یہاں دیکھو. جاوا میں ایک اسٹیک عناصر کا ایک مجموعہ ہے۔ یہ ایک ڈھیر میں کاغذ کی چادروں کی طرح ہے۔ اوپر سے تیسرا لینے کے لیے، آپ کو دوسری شیٹ لینی چاہیے، لیکن اس سے پہلے آپ کو پہلی لینی ہوگی۔ آپ ہمیشہ چادریں رکھ اور لے سکتے ہیں، لیکن آپ انہیں صرف اوپر رکھ سکتے ہیں اور صرف اوپر سے لے سکتے ہیں۔ فنکشن کال پر بھی یہی لاگو ہوتا ہے۔ فنکشن А فنکشن B کو کال کرتا ہے ، بعد میں فنکشن C کو کال کرتا ہے ۔ А سے باہر نکلنے کے لیے ، آپ کو پہلے B سے باہر نکلنا ہوگا ، اور ایسا کرنے کے لیے آپ کو C سے باہر نکلنا ہوگا ۔ - ذرا رکو. اگر میں نے اسے ٹھیک سمجھا تو، پورا اسٹیک نکلے گا "صرف آخری شیٹ جو اسٹیک پر ڈالی گئی تھی لی جا سکتی ہے" اور "پہلے، آخری کہلائے گئے فنکشن سے باہر نکلنا چاہیے"۔ اگر ایسا ہے؟ - جی ہاں. لہذا، فنکشن کالز کی ترتیب "فنکشن کال اسٹیک"، یا صرف "کال اسٹیک" ہے۔ آخری نامی فنکشن کو پہلے ختم کرنا ضروری ہے۔ آئیے مثال پر نظر ڈالیں: - ٹھیک ہے۔ میرے خیال میں فنکشن کال سے سب کچھ واضح ہے۔ لیکن یہ StackTraceElement کیا ہے ؟ - جاوا ورچوئل مشین تمام فنکشن کالز کو لاگ کرتی ہے۔ اس مقصد کے لیے اس کا ایک خاص مجموعہ ہے - اسٹیک۔ جب ایک فنکشن دوسرے کو کال کرتا ہے، JVM ایک نیا عنصر StackTraceElement رکھتا ہے۔اس اسٹیک میں. فنکشن ختم ہونے پر، عنصر کو اسٹیک سے حذف کر دیا جاتا ہے۔ اس طرح، یہ اسٹیک ہمیشہ "فنکشن کال اسٹیک" کی موجودہ حالت کے بارے میں تازہ ترین معلومات کو محفوظ کرتا ہے۔ - ہر StackTraceElement میں کہا جاتا طریقہ کے بارے میں معلومات ہوتی ہیں۔ لہذا آپ اس طریقہ کا نام استعمال کرکے حاصل کرسکتے ہیں getMethodName ۔ - اوپر کی مثال یہ ظاہر کرتی ہے:- "کال اسٹیک" حاصل کریں:
- لوپ for-each کا استعمال کرتے ہوئے صف کو دہرائیں ۔ مجھے امید ہے کہ آپ اسے بھولے نہیں ہوں گے۔
- System.out پر طریقہ کے نام پرنٹ کریں ۔
2 ڈیاگو، اسٹیک ٹریس ڈسپلے پر ٹاسک
- ارے، امیگو! اسٹیک ٹریس کو اسکرین پر ظاہر کرنے کے لیے یہاں ایک چھوٹا سا کام ہے۔کام | |
---|---|
1 | ہر طریقہ کو اپنا StackTrace واپس کرنا چاہیے پانچ طریقے لکھیں جو ایک دوسرے کو کال کریں۔ ہر طریقہ کو اس کا StackTrace واپس کرنا چاہئے۔ |
2 | StackTrace دوبارہ پانچ طریقے لکھیں جو ایک دوسرے کو کال کریں۔ ہر طریقہ کو اپنے کالر کے طریقہ کار کا نام واپس کرنا چاہیے۔ آپ StackTrace کا استعمال کرتے ہوئے کالر کا طریقہ حاصل کر سکتے ہیں۔ |
3 | طریقہ کار کو کوڈ کا لائن نمبر واپس کرنا چاہئے جس کو ایک دوسرے کو کال کرنے والے پانچ طریقوں سے کال کیا گیا تھا۔ ہر طریقہ کو کوڈ کا لائن نمبر واپس کرنا چاہئے جس سے اس طریقہ کو کال کیا گیا تھا۔ فنکشن element.getLineNumber() استعمال کریں ۔ |
4 | 10 کالوں کا اسٹیک ٹریس 10 کالوں کا اسٹیک ٹریس حاصل کرنے کے لیے کوڈ لکھیں۔ |
5 | طریقہ کار کو نتیجہ واپس آنا چاہیے - اس کی اسٹیک ٹریس ڈیپتھ ایک طریقہ لکھیں جو اس کے اسٹیک ٹریس ڈیپتھ کو دکھاتا اور واپس کرتا ہے۔ اسٹیک ٹریس ڈیپتھ اس کے طریقوں کی تعداد ہے (فہرست میں عناصر کی تعداد)۔ |
3 ایلی، غلطیاں اور مستثنیات
- ارے، امیگو! آج ہمارے پاس ایک بہت ہی دلچسپ سبق ہے۔ میں آپ کو مستثنیات کے بارے میں بتاؤں گا۔ استثنا پروگرام میں غلطیوں کو کنٹرول کرنے کا ایک خاص طریقہ کار ہے۔ پروگرام میں ہونے والی غلطیوں کی کچھ مثالیں یہ ہیں:- پروگرام مکمل ڈسک پر فائل لکھنے کی کوشش کرتا ہے۔
- پروگرام ایک متغیر کے طریقہ کار کو کال کرنے کی کوشش کرتا ہے جو null حوالہ کو محفوظ کرتا ہے۔
- پروگرام نمبر کو 0 سے تقسیم کرنے کی کوشش کرتا ہے۔
- جب کوئی خرابی واقع ہوتی ہے، جاوا ورچوئل مشین ایک خاص چیز بناتی ہے - ایک استثناء - جس میں خرابی کے بارے میں تمام معلومات ہوتی ہیں۔ مختلف غلطیوں کے لیے مختلف مستثنیات ہیں۔
- پھر یہ استثناء پروگرام کو فوری طور پر موجودہ فنکشن میں رکاوٹ ڈالنے پر مجبور کرتا ہے، اور اگلے فنکشن میں، جب تک کہ یہ مرکزی طریقہ سے باہر نہ نکل جائے۔ اس کے بعد پروگرام ختم ہو جاتا ہے۔ جاوا کے ڈویلپرز اس عمل کو "کال اسٹیک کو واپس کرتا ہے" کہتے ہیں۔
- اگر ٹرائی بلاک کے اندر کوئی استثناء واقع ہوتا ہے ، تو اس بلاک میں موجود کوڈ کو مزید عمل میں نہیں لایا جاتا ہے، لیکن بلاک کیچ پر عمل درآمد شروع ہو جاتا ہے۔
- اگر کوئی رعایت نہیں ہوئی تو، ٹرائی بلاک کو آخر تک عمل میں لایا جاتا ہے ، اور کیچ کو کبھی بھی عمل میں نہیں لایا جاتا ہے ۔
4 Elly, RuntimeException, throws
- میں نے آج ایک اور موضوع لانے کا فیصلہ کیا ہے۔ جاوا میں، تمام مستثنیات کو دو قسموں میں تقسیم کیا گیا ہے - کنٹرول شدہ/چیک شدہ اور غیر کنٹرول شدہ/غیر چیک شدہ ۔ چیک شدہ مستثنیات کو پکڑا جانا ضروری ہے ، غیر چیک شدہ کو پکڑا جا سکتا ہے لیکن اس کی ضرورت نہیں ہے ۔ - کیا جان بوجھ کر کوڈ میں مستثنیات پھینکنا ممکن ہے؟ - اپنے کوڈ میں، آپ خود مستثنیات پھینک سکتے ہیں۔ آپ اپنی مستثنیات بھی لکھ سکتے ہیں۔ لیکن ہم بعد میں اس سوراخ میں گہرائی میں جائیں گے۔ اب آئیے سیکھتے ہیں کہ جاوا ورچوئل مشین کی طرف سے دی گئی مستثنیات کے ساتھ کیسے کام کیا جائے۔ - ٹھیک ہے. - اگر استثناء ClassNotFoundException اور FileNotFoundException کو کسی طریقہ میں پھینک دیا جاتا ہے (ظاہر ہوتا ہے)، پروگرامر کو انہیں ایک طریقہ (طریقہ ہیڈر) کے دستخط میں بیان کرنا ہوگا۔ اس طرح کے استثناء کی جانچ پڑتال کی جاتی ہے. یہ عام طور پر ایسا ہی نظر آتا ہے: - لہذا، ہم صرف تھرو لکھتے ہیں اور کوما سے الگ کر کے مستثنیات کی فہرست دیتے ہیں۔ ٹھیک ہے؟ اگر ایسا ہے؟ - جی ہاں. لیکن ایک اور دلچسپ بات ہے۔ ذیل میں دی گئی مثال کو مرتب کرنے کے لیے، طریقہ جو میتھڈ 1() کو کال کرتا ہے اسے یا تو ان مستثنیات کو پکڑنا ہوگا یا انہیں آگے پھینکنا ہوگا۔ اگر آپ چیک شدہ استثناء کو آگے پھینکنا چاہتے ہیں تو آپ کو طریقہ کے ہیڈر میں اس کی وضاحت کرنی ہوگی ۔ - ایک بار پھر، اگر مرکزی طریقہ میں، آپ کسی ایسے طریقہ کو کال کرنا چاہتے ہیں جس کے ہیڈر کے جملے میں FileNotFoundException کو پھینک دیا گیا ہو ، تو آپ کو ان دو چیزوں میں سے ایک کرنا ہوگا:- مستثنیات کو پکڑنے کے لیے FileNotFoundException، …
آپ کو کوڈ کو لپیٹنا پڑے گا جہاں آپ ٹرائی کیچ بلاک کے ساتھ خطرناک طریقہ کہتے ہیں - مستثنیات کو نہ پکڑنا FileNotFoundException، …
5 ریشا، کال اسٹیک کو رول کرنا، اسے مستثنیات میں کیسے کرنا ہے۔
- میں آپ کو اس بارے میں تھوڑا سا مزید بتانا چاہوں گا کہ مستثنیات کیسے کام کرتی ہیں۔ ذیل کی مثال اس کی وضاحت کرتی ہے: - مجھے یہ نہیں ملتا ہے۔ - ٹھیک ہے. میں وضاحت کروں گا کہ کیا ہو رہا ہے۔ - بائیں طرف کی مثال میں، ہم کئی طریقوں کو سلسلہ ترتیب میں کہتے ہیں۔ میتھڈ 2() میں ہم خاص طور پر ایک رعایت بناتے اور پھینک دیتے ہیں (خرابی شروع کرنے کے لیے)۔ - دائیں طرف کی مثال ظاہر کرتی ہے کہ کیا ہوتا ہے۔ طریقہ 2() کو دیکھیں ۔ استثناء کی تخلیق اس میں تبدیل ہوتی ہے: ہم RuntimeException قسم کا ایک آبجیکٹ بناتے ہیں، اسے ایک خاص متغیر استثناء میں محفوظ کرتے ہیں اور فوری طور پر طریقہ سے باہر نکل جاتے ہیں – return ۔ - طریقہ 1 میں، طریقہ 2 کی کال کے بعد ایک چیک ہوتا ہے، اگر کوئی استثناء ہے یا نہیں؛ اگر کوئی استثناء ہے، تو طریقہ 1 فوری طور پر ختم ہوجاتا ہے۔ یہ چیک ہر ایک (!) جاوا طریقہ کو کال کرنے کے بعد واضح طور پر کیا جاتا ہے۔ - زبردست! - بالکل - میتھڈ مین میں دائیں طرف کے کالم میں میں نے لکھا تھا کہ جب کوئی استثناء ٹرائی کیچ بلاک سے پکڑا جاتا ہے تو کیا ہوتا ہے۔ اگر کوئی رعایت نہیں تھی تو، کوڈ منصوبہ بندی کے مطابق عمل درآمد جاری رکھے گا۔ اگر catch میں مخصوص قسم کی کوئی رعایت تھی ، تو ہم اسے سنبھال لیتے ہیں۔ - اور پھینکنے اور مثال کا کیا مطلب ہے؟ - بائیں طرف کی آخری لائن کو دیکھیں نئے RuntimeException(s) کو پھینک دیں ۔ اس طرح ہم استثنیٰ بناتے اور پھینک دیتے ہیں۔ یہ صرف ایک مثال ہے۔ ہم اب تک ایسا نہیں کریں گے۔ - دائیں بلاک میں کمانڈ « a instanceof B » کا استعمال کرتے ہوئے ہم چیک کرتے ہیں کہ آیا آبجیکٹ a میں B کی قسم ہے ۔ یعنی، چاہے متغیر استثناء میں ذخیرہ شدہ آبجیکٹ، RuntimeException کی قسم ہو ۔ یہ ایک منطقی اظہار ہے۔ - ٹھیک ہے، یہ تھوڑا سا واضح ہو رہا ہے.6 ڈیاگو، استثنائی کیچ ٹاسک
- یہاں دیکھو! انکل ڈیاگو آپ کے لیے کیچنگ پر کچھ کام لائے ہیں۔ قسمت کی خواہش. مجھے لگتا ہے کہ آپ کو اس کی ضرورت ہوگی۔ ہائے - ارے، امیگو! یہاں کچھ دلچسپ استثنائی کیچ کام ہیں۔کاموں کو پکڑنا | |
---|---|
1 | 1. نمبروں کے ساتھ کام کرتے وقت استثناء کوڈ کو چلانے کے وقت اس استثناء کو پکڑیں: int a = 42 / 0; اس کی قسم کی وضاحت کرتے ہوئے، اسکرین پر استثناء ڈسپلے کریں۔ |
2 | 2. سٹرنگز کے ساتھ کام کرتے وقت استثناء کو پکڑیں جو کوڈ چلانے پر ہوتا ہے: String s = null؛ سٹرنگ m = s.toLowerCase(); اس کی قسم کی وضاحت کرتے ہوئے، اسکرین پر استثناء ڈسپلے کریں۔ |
3 | 3. صفوں کے ساتھ کام کرتے وقت استثنیٰ اس استثناء کو پکڑیں جو کوڈ چلانے کے وقت ہوتا ہے: int[] m = new int[2]; m[8] = 5؛ اس کی قسم کی وضاحت کرتے ہوئے، اسکرین پر استثناء ڈسپلے کریں۔ |
4 | 4. فہرست کے مجموعوں کے ساتھ کام کرتے وقت استثناء کو پکڑو جو کوڈ کو چلانے کے وقت ہوتا ہے: ArrayList<String> list = new ArrayList<String>(); سٹرنگ s = list.get(18); اس کی قسم کی وضاحت کرتے ہوئے، اسکرین پر استثناء ڈسپلے کریں۔ |
5 | 5. میپ کلیکشنز کے ساتھ کام کرتے وقت استثناء کو پکڑیں جو کوڈ کو چلانے پر ہوتا ہے: HashMap<String, String> map = new HashMap<String, String>(null); map.put(null, null); map.remove(null); اس کی قسم کی وضاحت کرتے ہوئے، اسکرین پر استثناء ڈسپلے کریں۔ |
7 ریشا، ایک سے زیادہ کیچ کیسے کام کرتا ہے۔
- اب، کچھ اور دلچسپ لیکچرز۔ مجھے پڑھانا بہت پسند ہے۔ - میں آپ کو بتانا چاہتا ہوں کہ ایک سے زیادہ کیچ کیسے کام کرتا ہے۔ درحقیقت یہ بہت آسان ہے: جب بلاک try میں کوئی استثناء ہوتا ہے ، تو پروگرام پر عمل درآمد کو پہلے کیچ میں منتقل کر دیا جاتا ہے ۔ - اگر بلاک کیچ کے قوسین میں بیان کردہ قسم استثناء آبجیکٹ کی قسم جیسی ہے، تو کوڈ پر عمل درآمد {} کے اندر شروع ہوتا ہے۔ ورنہ ہم اگلے کیچ پر جائیں گے ۔ چیک وہاں دہرایا جاتا ہے۔ - اگر مزید کیچ بلاکس نہیں ہیں ، لیکن استثناء نہیں پکڑا گیا ہے، تو اسے آگے پھینک دیا جاتا ہے، اور موجودہ طریقہ میں خلل پڑتا ہے۔ - میں سمجھ گیا، اچھا. اس کیچ کو عمل میں لایا جائے گا، جس کی قسم استثناء کی قسم سے ملتی ہے۔ - ہاں حق. دراصل، یہ قدرے زیادہ پیچیدہ ہے: نقطہ یہ ہے کہ کلاسز ایک دوسرے سے وراثت میں مل سکتی ہیں۔ اگر کلاس "گائے" کلاس "جانور" سے وراثت میں ملی ہے، تو "گائے" کی قسم کی چیز کو نہ صرف "گائے" کی قسم کے متغیر میں ذخیرہ کیا جاسکتا ہے، بلکہ "جانور" کی قسم کے متغیر میں بھی ذخیرہ کیا جاسکتا ہے۔ . - تو کیا؟ - چونکہ تمام مستثنیات کلاسز Exception یا RuntimeException (جو Exception سے بھی وراثت میں ملتی ہیں ) سے وراثت میں ملی ہیں، ان سب کو catch (Exception e) یا catch (RuntimeException e) کمانڈز کا استعمال کرتے ہوئے پکڑا جا سکتا ہے ۔ - تو کیا؟ - اس کا مطلب یہ ہے کہ، سب سے پہلے، آپ کمانڈ کا استعمال کرتے ہوئے کسی بھی استثناء کو پکڑ سکتے ہیں catch(Exception e) ۔ دوسرا، کیچ بلاکس کی ترتیب سے فرق پڑتا ہے۔ مثالیں: - 0 سے تقسیم کے نتیجے میں ریاضی کا استثناء دوسرے کیچ میں پکڑا جاتا ہے۔ - نیچے دی گئی مثال میں، ArithmeticException پہلی پکڑ میں پکڑا گیا ہے ، کیونکہ تمام استثناء کی کلاسیں Exception سے وراثت میں ملی ہیں۔ لہذا، Exception کسی بھی استثنا کو پکڑتا ہے ۔ - نیچے دی گئی مثال میں، رعایت ArithmeticException نہیں پکڑی گئی ہے، بلکہ کالنگ کے طریقہ کار کی طرف پھینک دی گئی ہے۔ - ٹھیک ہے، یہ اب واضح ہو رہا ہے. یہ مستثنیات اتنے آسان نہیں ہیں۔ - یہ صرف ایسا لگتا ہے۔ درحقیقت، یہ جاوا میں سب سے آسان چیز ہے۔ - مجھے شک ہے کہ اس سے خوش ہوں یا پریشان ہوں…8 ڈیاگو، ایک سے زیادہ استثنائی کیچ ٹاسک
- ارے، امیگو! کل میں نے نشے میں دھت ہو کر آپ کے کاموں کو زیادہ پیچیدہ کر دیا تھا، لیکن مجھے امید ہے کہ آپ کی طرف سے کوئی سخت احساسات نہیں ہیں اور آپ ان سب کو حل کر لیں گے؟ یہ آپ کی اپنی بھلائی کے لیے ہے۔ یہاں:کام | |
---|---|
1 | 1. مستثنیات ایک ایسا طریقہ ہے جو Exception سے وراثت میں ملنے والی دو مستثنیات کو پھینک دیتا ہے ، اور باقی دو RuntimeException سے وراثت میں ملتا ہے : NullPointerException ، ArithmeticException ، FileNotFoundException ، اور URISyntaxException ۔ آپ کو NullPointerException اور FileNotFoundException کو پکڑنے کی ضرورت ہے ، لیکن ArithmeticException اور URISyntaxException کو پکڑنے کے لیے نہیں ۔ یہ کیسے کرنا ہے؟ |
2 | 2۔ استثناء کو پکڑنا تین مستثنیات ہیں جو ترتیب وار استثناء سے وراثت میں ملی ہیں : کلاس Exception1 Exception class exception2 exceptions exception1 class Exception3 exception2 exceptions ایک طریقہ ہے، جس کی وضاحت اس طرح کی گئی ہے: public static void method1() throws Exception1, Exception2, Exception3 ایک کیچ لکھیں تینوں Exception1 ، Exception2 اور Exception3 کو پکڑنے کے لیے بلاک کریں۔ |
3 | 3. منتخب مستثنیات کو پکڑنا 1. معلوم کریں کہ طریقہ BEAN.methodThrowExceptions کے ذریعے کیا مستثنیات پھینکے گئے ہیں ۔ 2. طریقہ processExceptions() کو طریقہ BEAN.methodThrowExceptions کو کال کرنا چاہئے اور مستثنیات کو ہینڈل کرنا چاہئے: 2.1۔ اگر کوئی استثناء FileSystemException ہوتا ہے، تو اسے BEAN.log کے طریقہ پر کال کرکے لاگ ان کریں اور آگے پھینک دیں 2.2۔ اگر کوئی استثناء CharConversionException یا کوئی دوسرا IOException ہوتا ہے، تو اسے BEAN.log 3 کے طریقہ پر کال کرکے لاگ ان کریں۔ processExceptions() طریقہ کے دستخط پر ۔ 4. طریقہ مین() میں باقی رعایت کو ہینڈل کریں اور اسے لاگ کریں۔ try..catch ٹپ استعمال کریں : اگر آپ نے استثناء MyException پکڑا ہے، جسے آپ پکڑنا نہیں چاہتے تھے، تو آپ اسے درج ذیل کوڈ کا استعمال کرکے آگے پھینک سکتے ہیں: catch (MyException e) { throw e; } |
4 | 4. چیک شدہ مستثنیات کو پکڑنا طریقہ عمل میں تمام چیک شدہ استثناء کو ہینڈل کریںExceptions () ۔ آپ کو اسکرین پر ہر چیک شدہ استثناء کو ظاہر کرنے کی ضرورت ہے جو واقع ہوئی ہے۔ آپ صرف ایک بلاک استعمال کر سکتے ہیں ۔ |
5 | 5. غیر نشان زد مستثنیات کو پکڑنا طریقہ عمل میں تمام غیر نشان زد مستثنیات کو ہینڈل کریںExceptions () ۔ آپ کو طریقہ استعمال کرتے ہوئے ہر ایک استثناء کے اسٹیک ٹریس کو اسکرین پر ظاہر کرنے کی ضرورت ہے printStack() ۔ آپ صرف ایک بلاک استعمال کر سکتے ہیں ۔ |
9 پروفیسر، مستثنیات پر لیکچر
- آج ہمارے پاس ایک انتہائی دلچسپ موضوع ہے - مستثنیات۔ اس وقت، جب نوجوان سائنس دان اور پروگرامرز اس موضوع کے بارے میں بہت پرجوش تھے… - معذرت، مجھے لیب میں جانا چاہیے۔ یہاں لیکچر کے نوٹ ہیں۔ مجھے لگتا ہے کہ آپ خود ہی اس کا پتہ لگا لیں گے۔ یہاں: Java Exceptions (Oracle Documentation) Exceptions Handling in Java (Java T point) Java - Exceptions ہینڈلنگ (ٹیوٹوریلز پوائنٹ) بنیادی جاوا استثنا ہینڈلنگ10 جولیو
- امیگو، آج کے سبق کے بارے میں آپ کا کیا خیال ہے؟ کیا آپ کا پوزیٹرون دماغ ابھی تک کام نہیں کر پایا ہے؟ ڈیاگو کے کام کسی کو بھی باہر کرنے کے لیے کافی ہیں۔ آئیے بیئر کا لمحہ گزاریں اور آرام کریں۔ کیا آپ اب بھی کھڑے ہیں؟11 کیپٹن گلہری
- ہیلو، فوجی! - صبح بخیر صاحب! - میرے پاس آپ کے لیے کچھ اچھی خبریں ہیں۔ اپنی صلاحیتوں کو تقویت دینے کے لیے یہاں ایک فوری چیک ہے۔ اسے ہر روز کریں، اور آپ اپنی صلاحیتوں میں تیزی سے اضافہ کریں گے۔ کام خاص طور پر Intellij IDEA میں کرنے کے لیے بنائے گئے ہیں۔Intellij Idea میں کرنے کے لیے اضافی کام | |
---|---|
1 | 1. صفر کے حساب سے تقسیم ایک طریقہ بنائیں عوامی جامد باطل divisionByZero() ، جہاں آپ کو کسی بھی نمبر کو صفر سے تقسیم کرنے کی ضرورت ہے، اور تقسیم کا نتیجہ اسکرین پر ڈسپلے کریں۔ divisionByZero() طریقہ کال کو try..catch میں لپیٹ دیں ۔ طریقہ exception.printStackTrace() کا استعمال کرتے ہوئے ایکسپشن اسٹیک ٹریس کو اسکرین پر دکھائیں ۔ |
2 | 2. 10 سے 0 تک الٹی گنتی 10 سے 0 تک الٹی گنتی کے لیے ایک لوپ لکھیں۔ تاخیر کے لیے Thread.sleep(100) کا استعمال کریں۔ سلیپ کال کو ایک کوشش میں لپیٹیں .. پکڑیں . |
3 | 3. ایک طریقہ کو آزمائیں..کی بورڈ سے نمبر پڑھیں۔ کی بورڈ سے نمبروں کو پڑھنے کے لیے ایک کوڈ کو الگ طریقہ readData() میں لکھیں ۔ اس طریقہ کار کی پوری باڈی ( readData() طریقہ کے اندر پورا کوڈ ، سوائے اس فہرست کے اعلان کے جہاں نمبرز کو ذخیرہ کیا جائے گا) کو try..catch میں لپیٹ دیں ۔ اگر صارف نمبر داخل کرنے کے بجائے کچھ متن داخل کرتا ہے، تو طریقہ کو استثناء کو پکڑنا ہوگا اور اس سے پہلے درج کردہ تمام نمبروں کو اسکرین پر ظاہر کرنا ہوگا۔ اسکرین پر نمبر ڈسپلے کریں۔ ہر نمبر ایک نئی لائن پر ہونا چاہئے۔ نمبروں کی ترتیب بالکل اسی طرح ہونی چاہیے جیسے یہ ان پٹ میں تھی۔ |
4 | 4. ڈیٹ کنورٹر کی بورڈ سے ایک تاریخ کو "08/18/2013" فارمیٹ میں پڑھیں "اگست 18، 2013" کی شکل میں اس تاریخ کو اسکرین پر ڈسپلے کریں۔ آبجیکٹ Date اور SimpleDateFormat استعمال کریں ۔ |
5 | 5. حرف اور حرف ایک ایسا پروگرام لکھیں جو کی بورڈ سے لائن پڑھتا ہے۔ پروگرام کو اسکرین پر دو سٹرنگ دکھانی چاہیے: 1) پہلی سٹرنگ میں سر ہونا چاہیے 2) دوسری سٹرنگ میں درج کیے گئے متن کے حروف اور اوقاف پر مشتمل ہونا چاہیے۔ حروف کو خالی جگہوں سے الگ کریں۔ مثال کے طور پر ان پٹ: اسٹاپ دیکھیں سنیں مثال آؤٹ پٹ: oooie stplklstn |
6 | 6. لٹل ریڈ رائیڈنگ ہڈ کی کہانی 1. پانچ کلاسیں ہیں: ریڈ رائیڈنگ ہڈ، دادی، پیٹی، لکڑی کاٹنے والا، بھیڑیا۔ 2. ہر کلاس میں ArrayList قسم کے دو شعبے ہوتے ہیں : ہلاک اور کھایا۔ 3. ضروری اشیاء پہلے سے ہی بنائی گئی ہیں (ہڈ، دادی، ...). 4. "لٹل ریڈ رائیڈنگ ہڈ" کی منطق حاصل کرنے کے لیے صحیح رشتہ (کس نے کھایا اور کس کو مارا) بنائیں۔ |
7 | 7. Move static modifies Move static modifiers تاکہ کوڈ مرتب ہو جائے۔ |
8 | 8. نمبروں کی صفوں کی فہرست ایک فہرست بنائیں جس کے عناصر نمبروں کی صفیں ہوں۔ فہرست میں بالترتیب 5، 2، 4، 7، 0 کی لمبائی والی پانچ آبجیکٹ صفوں کو شامل کریں۔ کسی بھی ڈیٹا سے صفوں کو بھریں اور انہیں اسکرین پر ڈسپلے کریں۔ |
9 | 9. دس بلیوں کو فیلڈ سٹرنگ نام کے ساتھ کلاس کیٹ بنائیں ۔ ایک لغت کا نقشہ بنائیں<String, Cat> ، ماڈل «Name» - «Cat» پر 10 بلیوں کو شامل کریں۔ نقشہ سے ناموں کا ایک سیٹ حاصل کریں اور سیٹ کو اسکرین پر ڈسپلے کریں۔ |
بونس کے کام | |
---|---|
1 | 1. پروگرام مرتب اور نہیں چلتا ہے۔ اسے ٹھیک کریں۔ ٹاسک: پروگرام کو کی بورڈ سے دو فائلوں کے نام پڑھنا چاہئے اور پہلی فائل کو دوسرے نام سے مخصوص جگہ پر کاپی کرنا چاہئے۔ |
2 | 2. پروگرام میں نئی فعالیت شامل کریں۔ پرانا کام: پروگرام کو کی بورڈ سے دو فائلوں کے نام پڑھنا چاہیے اور پہلی فائل کو دوسرے نام سے مخصوص جگہ پر کاپی کرنا چاہیے۔ نیا کام: پروگرام کو کی بورڈ سے دو فائلوں کے نام پڑھنا چاہئے اور پہلی فائل کو دوسرے نام سے مخصوص جگہ پر کاپی کرنا چاہئے۔ اگر مخصوص نام کے ساتھ فائل (جس کی کاپی کی جا رہی ہے) موجود نہیں ہے، تو پروگرام کو اسکرین پر پیغام "فائل موجود نہیں ہے" دکھانا چاہیے اور پڑھنے سے پہلے ایک بار پھر کنسول سے فائل کا نام پڑھنے کی کوشش کریں۔ دوسری (منزل) فائل کا نام۔ |
3 | 3. الگورتھم سیکھنا اور اس پر عمل کرنا۔ کی بورڈ سے الفاظ اور اعداد کی فہرست پڑھیں۔ اسکرین الفاظ کو صعودی ترتیب میں اور نمبرز کو نزولی ترتیب میں دکھائیں۔ مثال ان پٹ: چیری 1 بین 3 ایپل 2 0 تربوز مثال آؤٹ پٹ: ایپل 3 بین 2 چیری 1 0 تربوز |
GO TO FULL VERSION