 بسم اللہ الرحمن الرحیم آج ہم موڈیول 55 دسکس کریں گے. موڈیول 55 ہے a ڈریٹنگ آررز as ڈیسیپٹنز. ہم نے پریویسلی دسکس کیا تھا کہ use ڈیفائنڈ ڈیسیپٹنز بھی ہو سبتی ہیں. use ڈیسیپٹنز جو ہے وہ اپنی مرزی سے ڈیسیپٹنز کو ڈیفائنگ کر سبتا ہے اور پھر وہ ڈیسیپٹنز بھوکرام کی ڈیسیپٹنز کے دوران ڈیس بھی ہو سبتی ہیں. ہم یہاں پہ ایک ایسی methodology ڈیوائیس کریں گے جب اگر کوئی کسی کسم کا ڈرر آتا ہے ڈیسیپٹنز کے دوران تو بجائے اس کے کہ ڈرر کو ڈیسیپٹنز کیا جائے اس کی جگہ ایک ڈیسیپٹنز ریز کر دی. اور اس ڈیسیپٹنز کو ڈیسیپٹنز کیا جائے کیونکہ عام طور پہ جب ہم ڈیسیپٹنز کو ڈیسیپٹنز کیا extinction کیا جاتے ہیں این کے ساتھ ایک ایک ایک ڈیسیپٹنز کو ڈیسیپٹنز سے خواہگا جائے ایٹسیپابٹنز کے ایک ڈیسیپٹنز سے خواہگا جائے آن کا بال گمک رہے ہیں جو desta آپ دیکھرائے ہیں اہم د episode ڈیسیپٹنز سے خواہه تلمنیت ہے اس جسس ترمrico کے د لوگ graduated ڈیسیپٹنز ہو سکتا ہے اگر پکرام ملٹی ٹھرٹ ڈیڑا ہے اس کے اندر کئی ٹھرٹس چال رہی ہے تو اس میں صرف ایک ٹھرٹ کو شٹ کرنے کی ضرورت ہی باقی ٹھرٹس چال سکتی نہیں یا ہو سکتا ہے ایک ٹھرٹ پکرام نے کچھ ایسے رسورسٹس اکوائر کیئے بہت ہے تو میمری ایڈیاں اکوائر کیا بہتا کوئی اس نے فائلز اکوائر کیمی تھی کوئی ٹمپریری فائلز اکوائر کیمی تھی تو ان کے حانڈلز ہیں ان کو آپ نے کچھ بھی نہیں کیا اور پکرام کو شٹ کر دیا وہ حانڈل اوپن کے اوپن نہیں رہے گا یا ایسے بہت ہے کہ آپ نے کوئی سنکرونائیزیشن جو کنسٹرٹس ہیں جسنا سیمہ فورز ہیں سپینلوگس ہیں ان کا استعمال کرے ہیں اب وہ جو یہ سنکرونائیزیشن کنسٹرٹس ہیں وہ اسی طرح رہے گے آپ نے اس کو صیطری کیسے کلوز نہیں کیا اب اس کی وجہ سے بھی کسم کے آگے مسئلے ہو سکتا ہے تو ان سارے مسئلوں سے بچنے کے لئے ہم کیا کرنا چاہیے کوئی ایسی ماثرڈولوجی بنانی چاہیے کہ جس کے طرح ہم ایررز کو حانڈل بھی کرنے اور اس کے ساتھ ساتھ یہ جو ہمیں رسورسز جن کو دیالوکیٹ کرنے گزوتا یا جن کو رلیز کرنے گزوتا ان کو ہم رلیز بھی کرنا ہم نے دیکھا ہے ایکسپشن جو ہیں وہ یہ کام کرتی ایکسپشن ہمیں اس چیز میں حیر بھی کرتی ان کے ایکسپشن آ کر ہوتی ہے تو ہمیں یہ چانس ملتا ہے کہ ہم جو رسورسز ہم نے ایکوائر کیا ہمیں ان کو ہم رلیز کر سکے تو کوئی ایسی ٹکنیکیک دوائیس کیجا ہے کہ جب کوئی ایرر آئے تو ہم اس کو ایررنا ٹریٹ کیا جا ہے اس کو ایسن ایکسپشن ٹریٹ کیا جا ہے تو یہ ایک possible ہے through user defined ایکسپشنز اگر for example جس طرح آپ ایررز کو ٹریٹ کرتے ہیں تو اس کو ٹریٹ کرنے کے لیے آپ نے report ایرر کا function use کیا and report ایرر کے function کے اندر آپ نے دیکھا کہ جی ایرر fatal ہے تو آپ نے کیا کیا جی program کو بالکل خدم کر دیا اور جو بھی رسورسز تھے وہ سارے جویں وہ اسی طرح اسے ہی allocated رہ گئے even synchronization کے لیے بھی اگر کوئی construct تھے آپ کے program کے اندر تو وہ بھی اسی طرح سے allocated رہ گیا ان کو آپ صایتری کیسے کلوز نہیں کر سکے اب solution یہ ہے کہ ہم اپنا ایک function منال ہم سے for example کہتے ہیں اس کو report exception report exception کا function کیا کرے گا ان کیس وہ report ایرر کوئی call کرے گا ان کیس اگر کوئی fatal ایرر آیا تو fatal ایرر کی صورت میں وہ exception کو بھرز کر دے جب exception ریز ہوگی تو آپ کے پاس یہ اس چیز کا چانس ہوگا except construct کے اندر کہ آپ جو resources allocate ہوئے میں ان resources کو صایتری کیسے deallocate کر سکے تو یہ ہمارا objective ہے اس کیس میں کیا ہو رہا ہے کہ جب بھی ایرر آ کر ہو رہا ہم ایرر کو identify کر رہے ہیں اور اگر fatal ایرر آرہ رہا تو اس کے result میں ہم exception کو raise کر رہے ہیں raise exception کا یہاں پہای use ہوگی اس کو use کرتے ہم exception raise کریں گے اور raise کرنے کے result میں کیا ہوگا کہ ہمارے پاس except clause execute کرنے کا چانس ہوگا جہاں پہ ہم ان resources کو deallocate کر سکے تو یہاں پہ آپ دیکھ سکتے ہیں report exception کا function ہم نے بنائے report exception کا جو function ہے اس کو آپ ایک exception code پاس کرے یہ کیا کر رہا ہے یہ report error کوئی call کر رہا اور ایک user کو message دے دتا اور پھر آپ exception code کو دیکھتے ہیں اگر تو exception code جو ہے وہ fatal ہے تو اس صورت میں آپ exception raise کر دیں آپ ایک exception raise کر دیں گے اس کی جو بھی آپ نے code بنائی بھی ہے exception code آپ specify کر سکتے ہیں تو code آپ raise کر دیں گے جس سے کہیں پہ آپ کو چانس ملے گا except کی construct کو execute کرنے گے تو وہ except کا construct execute ہوگا اس کے اندر میں بھی آپ اپنا کو فلٹر لگا آکے چیک کر سکتے ہیں کیا exception code ہے اور اس exception code کے ایکارڈنگ لی جو جو رسورسیز آپ کو deallocate کرنے کے لیے ضرورت ہے ان رسورس کو آپ deallocate کریں گے