اگر آپ بڑے پروگراموں سے نمٹ رہے ہیں تو یہ لیکچر اہم ہوگا۔
آپ استثنیٰ بلاکس کے ذریعے اور Python میں تبصرے استعمال کرکے غلطیوں کو سنبھالنا سیکھیں گے۔
مستثنیات
ہم یہ سیکھنے جا رہے ہیں کہ Python پروگراموں میں غلطیوں کو کیسے ہینڈل کیا جائے۔ آئیے ٹرمینل سے صارف کی عمر معلوم کرنے کے لیے ایک چھوٹا سا پروگرام لکھ کر شروع کریں۔
age = int(input('Age'))
print(age)
چلو اسے چلاتے ہیں۔
اب اس پروگرام کے ایگزٹ کوڈ کو دیکھیں۔ ایگزٹ کوڈ 0 کا مطلب ہے کہ ہمارا پروگرام کامیابی کے ساتھ ختم ہو گیا اور اس میں کوئی خرابی نہیں تھی۔ لیکن کیا ہوگا اگر ہم اس پروگرام کو ایک بار اور چلائیں اور عددی قدر داخل کرنے کے بجائے، ہم ایک سٹرنگ داخل کریں؟
ہمیں اس کے پیغام کے ساتھ ایک قدر کی خرابی ملتی ہے "invalid literal for int() with base 10 اب اس پروگرام کے ایگزٹ کوڈ کو دیکھیں۔ ایگزٹ کوڈ 1 کا مطلب ہے کہ ہمارا ایگزٹ کوڈ کریش ہو گیا، اس لیے 0 کا مطلب ہمیشہ کامیابی ہے اور 0 کے علاوہ کچھ بھی کریش ہوتا ہے۔ پروگرامنگ میں، ہم اس قسم کی غلطی کو بطور استثنا کہتے ہیں۔
ایک اچھے python پروگرامر کے طور پر، آپ کو اس صورتحال کا اندازہ لگانا چاہیے۔ آپ اپنے پورے پروگرام کو صرف اس وجہ سے کریش نہیں ہونے دینا چاہتے کہ صارف نے ایک غلط قیمت درج کی ہے۔ لہذا پروگرام کو کریش ہونے دینے کے بجائے آپ کو صورتحال کو سنبھالنا چاہئے اور ایک مناسب غلطی کا پیغام پرنٹ کرنا چاہئے۔ یہی میں آپ کو اس لیکچر میں دکھانے جا رہا ہوں۔
Python میں، ہمارے پاس ایک تعمیر ہے جسے کہتے ہیں۔ try except
خرابی کے حالات سے نمٹنے کے لیے استعمال کیا جاتا ہے۔
try:
age = int(input('Age'))
print(age)
کوڈ کی یہ دو لائنیں ہمارے حصے ہیں۔ try:
بلاک ہم شامل کریں گے۔ except
اس کے بعد اس قسم کی غلطی کے ساتھ بلاک کریں جس کی ہم توقع کر رہے ہیں۔
except ValueError:
print('Invalid Value')
یہ اب قدر کی خرابی کی صورت میں سٹرنگ "غلط قدر" واپس کرے گا۔
آئیے پچھلے پروگرام کو تبدیل کرکے ایک اور قسم کی غلطی کو چیک کرتے ہیں۔
try:
age = int(input('Age'))
income = 20000
risk = income / age
print(age)
except ValueError:
print('Invalid Value')
اب، اگر ہم اس پروگرام کو چلاتے ہیں اور عمر میں '0' ڈالتے ہیں، ایک عددی قدر۔ لہذا، تکنیکی طور پر، ہمیں کوئی استثنا نہیں ملنا چاہیے۔
چلو اسے چلاتے ہیں۔
ایک نظر ڈالیں. ہمارا پروگرام کریش ہو گیا اور ہم نے "زیرو ڈویژن ایرر" کیا کیونکہ ہم کسی نمبر کو 0 سے تقسیم نہیں کر سکتے۔ ایک بار پھر ایگزٹ کوڈ کو دیکھیں۔ ہم اس قسم کی غلطی یا اس قسم کی رعایت کو بلاک کے علاوہ نہیں پکڑ سکے۔
یہ بلاک کے علاوہ صرف قسم کی قدر کی خرابی کے استثناء کو پکڑ رہا ہے اور ہمیں زیرو ڈویژن ایرر کو ہینڈل کرنے کے لیے ایک نئے سوائے بلاک کی ضرورت ہوگی۔ آئیے اس کے مطابق پروگرام میں ترمیم کریں۔
try:
age = int(input('Age'))
income = 20000
risk = income / age
print(age)
except ZeroDivisionError:
print('Age cannot be 0')
except ValueError:
print('Invalid Value')
مسئلہ حل ہو گیا!
- ترکیب غلطی
- ٹائپ ایرر
- نام کی غلطی
- اشاریہ کی خرابی۔
- قدر کی خرابی
- صفر تقسیم کی خرابی۔
- انتساب کی خرابی
- رن ٹائم خرابی
- کلیدی غلطی
- یادداشت کی خرابی۔
- دعویٰ کی غلطی
- انڈینٹیشن کی خرابی۔
- Eoferror
- فلوٹنگ پوائنٹ کی خرابی۔
- اوور فلو ایرر
- منطق کی خرابی۔
- سسٹم کی خرابی۔
- نفاذ شدہ غلطی
- اوسرر
- غلطی
- حوالہ کی غلطی
- یونیکوڈ ایرر
- ریاضی کی غلطی
- یونی کوڈ کوڈ کی غلطی
- یونیکوڈن کوڈ ایرر
- یونیکوڈ ٹرانسلیٹ ایرر
- رن ٹائم غلطیاں
ایک پروگرامر کے طور پر، آپ کو اپنے پروگرام میں تمام مستثنیات سے آگاہ ہونا چاہیے اور آپ کو ان کے مطابق ہینڈل کرنا چاہیے۔
تبصرے
اب، ہم python میں تبصروں کے بارے میں بات کرنے جا رہے ہیں۔ ہم اپنے پروگراموں میں نوٹس یا تبصرے شامل کرنے کے لیے تبصروں کا استعمال کرتے ہیں تاکہ پڑھنے کی اہلیت کو بہتر بنایا جا سکے اور ہمارا کوڈ پڑھنے والے کو کچھ پیغام پہنچایا جا سکے۔
پروگرام میں # نشان کا استعمال کرکے تبصرے لکھے جاسکتے ہیں۔ # کے بعد آپ جو کچھ بھی لکھتے ہیں اسے Python مرتب کرنے والے کے ذریعے نظر انداز کر دیا جائے گا اور اس پر عمل نہیں کیا جائے گا۔ آپ انفرادی لائنوں کے ساتھ ساتھ کوڈ کی لائن کے بعد تبصرے شامل کر سکتے ہیں۔
ان تبصروں کے ساتھ، ہم اپنے کوڈ کے بارے میں کچھ وضاحت کر سکتے ہیں، ہم انہیں چیزوں کو ٹھیک کرنے یا چیزوں کو صاف کرنے کے لیے یاد دہانی کے طور پر استعمال کر سکتے ہیں، یا ہم ان کا استعمال ہمارے کوڈ کو پڑھنے والے دوسرے ڈویلپرز کے ساتھ بات چیت کرنے کے لیے کر سکتے ہیں یا یہ بتانے کے لیے کہ ہم نے یہ کوڈ کیوں لکھا ہے۔ ایک خاص طریقہ. تبصرے استعمال کرنے کے لئے یہ اچھے استعمال کے معاملات ہیں۔ ہم متعدد سطروں پر تبصرے بھی کر سکتے ہیں۔ ہر لائن ایک نئے # نشان کے ساتھ شروع ہونی چاہیے۔ اب ایک چیز جس سے آپ کو تبصرے استعمال کرنے سے گریز کرنے کی ضرورت ہے وہ یہ ہے کہ کوڈ کیا کرتا ہے۔
یہاں ایک خراب تبصرہ کی ایک مثال ہے:
یہ ایک برا تبصرہ ہے کیونکہ یہ مجھے واضح بتا رہا ہے۔ یہ مجھے بتا رہا ہے کہ اگلی لائن "مغرب میں سورج غروب ہونے" کو پرنٹ کرنے جا رہی ہے۔ اب اس تبصرے میں مسئلہ یہ ہے کہ لفظی اور تکراری ہونے کے علاوہ اگر آپ یہاں آکر مغرب کو مشرق سے بدل دیں تو یہ تبصرہ پرانا ہو جاتا ہے۔ لہذا، ہر بار جب ہم اپنے کوڈ کو اپ ڈیٹ کریں گے تو ہمیں واپس آنا ہوگا اور متعلقہ تبصرے میں ترمیم کرنا ہوگی۔
مختصراً، کیا ہے کے بجائے کیسے اور کیوں ہے کا جواب دینے کے لیے اپنے تبصرے استعمال کریں۔
یہاں ایک اچھے تبصرے کی ایک مثال ہے:
پہلے تبصرے میں، میں اپنے آپ کو یاد دلا رہا ہوں کہ پروگرام کو حتمی شکل دینے سے پہلے مجھے اس آمدنی کی قیمت کو اپ ڈیٹ کرنے کی ضرورت ہے اور دوسری قیمت میرے کوڈ کو پڑھنے والے دوسرے ڈویلپرز کو بتا رہی ہے کہ اس پروگرام میں تمام خرابیوں کو سنبھالا نہیں گیا ہے۔
مجموعی طور پر، آپ کو بے کار تبصروں سے گریز کرنا چاہیے اور آپ کے تبصروں کو آپ کے کوڈ میں کچھ قدر کا اضافہ کرنا چاہیے۔
لپیٹ!
مستثنیات اور تبصرے پروگرامنگ کے دو پہلو ہیں جنہیں اکثر نظر انداز کیا جاتا ہے اور ان کی اہمیت کو عام طور پر کم کیا جاتا ہے۔
اپنے پروگرام کو کریش کرنا اتنا ہی برا ہے جتنا کہ ضرورت پڑنے پر اپنے کوڈ پر تبصرہ نہ کرنا۔ اگلا لیکچر کلاسز اور کنسٹرکٹرز پر توجہ مرکوز کرے گا۔
جواب دیجئے