$lang['tuto'] = "سبق"; ?> استثنیٰ ہینڈلنگ کے لیے ازگر میں

استثنیٰ ہینڈلنگ کے لیے ازگر میں مستثنیات پھینکنا

استثنیٰ ہینڈلنگ کے لیے ازگر میں مستثنیات پھینکنا
استثنیٰ ہینڈلنگ کے لیے ازگر میں مستثنیات پھینکنا

ازگر میں استثنیٰ ہینڈلنگ کو سمجھنا

Python میں، مستثنیات غلطیوں اور غیر معمولی معاملات کو سنبھالنے کے لیے ایک طاقتور ٹول ہیں جو کسی پروگرام کے عمل کے دوران ہو سکتے ہیں۔ مستثنیات کو دستی طور پر بڑھا کر، ڈویلپر مخصوص مسائل کی موجودگی کا اشارہ دے سکتے ہیں اور اپنی ایپلیکیشنز کے بہاؤ کو زیادہ مؤثر طریقے سے منظم کر سکتے ہیں۔

یہ گائیڈ پائتھون میں مستثنیات کو دستی طور پر بڑھانے کے عمل کو دریافت کرے گا، جس سے آپ کو یہ سمجھنے میں مدد ملے گی کہ آپ کے کوڈ میں غلطی سے نمٹنے کے طریقہ کار کو کیسے کنٹرول کیا جائے۔ مستثنیات کا مناسب استعمال آپ کے Python پروگراموں کی مضبوطی اور پڑھنے کی اہلیت کو بڑھا سکتا ہے۔

کمانڈ تفصیل
raise ازگر میں ایک استثناء کو دستی طور پر متحرک کرنے کے لیے استعمال کیا جاتا ہے۔
try عملدرآمد کے دوران غلطیوں کی جانچ کرنے کے لیے کوڈ کے بلاک کی وضاحت کرتا ہے۔
except ٹرائی بلاک میں پائے جانے والے استثناء کو پکڑتا اور ہینڈل کرتا ہے۔
else کوڈ کے بلاک پر عمل درآمد کرتا ہے اگر ٹرائی بلاک میں کوئی استثناء نہیں اٹھایا جاتا ہے۔
ValueError ایک بلٹ ان استثناء اٹھایا جاتا ہے جب کسی فنکشن کو صحیح قسم کی لیکن نامناسب قدر کی دلیل موصول ہوتی ہے۔
__init__ ایک کلاس کی صفات کو شروع کرتا ہے، جو عام طور پر حسب ضرورت مستثنیات کی وضاحت میں استعمال ہوتا ہے۔

استثنیٰ ہینڈلنگ اسکرپٹس کی تفصیلی وضاحت

پہلی اسکرپٹ کی مثال میں، فنکشن 0 یہ ظاہر کرتا ہے کہ کس طرح دستی طور پر ایک استثناء کو استعمال کرتے ہوئے raise کمانڈ۔ اگر تقسیم کرنے والا b صفر ہے، فنکشن a بڑھاتا ہے۔ ValueError حسب ضرورت پیغام کے ساتھ "صفر سے تقسیم نہیں کیا جا سکتا!" یہ مؤثر طریقے سے فنکشن کے عمل کو روکتا ہے اور کنٹرول کو منتقل کرتا ہے۔ try بلاک، جو دلائل کے ساتھ فنکشن کو کال کرنے کی کوشش کرتا ہے۔ class NegativeNumberError(Exception): اور 0. جب استثناء اٹھایا جاتا ہے، تو کنٹرول کو منتقل کر دیا جاتا ہے۔ except بلاک، جو پکڑتا ہے ValueError اور غلطی کا پیغام پرنٹ کرتا ہے۔ اگر کوئی رعایت نہیں اٹھائی جاتی ہے، else بلاک تقسیم کا نتیجہ پرنٹ کرتے ہوئے عملدرآمد کرے گا۔

دوسری اسکرپٹ میں ایک حسب ضرورت استثناء کلاس شامل ہے۔ class NegativeNumberError(Exception): جو ازگر کے بلٹ ان سے وراثت میں ملتا ہے۔ Exception کلاس دی __init__ طریقہ استثنیٰ کو قدر کے ساتھ شروع کرتا ہے، اور __str__ طریقہ غلطی کی ایک تار کی نمائندگی کرتا ہے۔ فنکشن def check_positive_number(n): اس حسب ضرورت استثناء کو بڑھاتا ہے اگر ان پٹ n منفی ہے. میں try بلاک، فنکشن کے ساتھ کہا جاتا ہے۔ -5، جو بلند کرتا ہے۔ NegativeNumberError اور کنٹرول کو منتقل کرتا ہے۔ except بلاک، جہاں غلطی کا پیغام پرنٹ کیا جاتا ہے. اگر کوئی استثناء نہیں ہوتا ہے، else بلاک تصدیق کرتا ہے کہ نمبر مثبت ہے۔

ازگر میں مستثنیات کو کیسے بڑھایا جائے اور ہینڈل کیا جائے۔

ازگر پروگرامنگ کی مثال

# Function to demonstrate raising an exception
def divide_numbers(a, b):
    if b == 0:
        raise ValueError("Cannot divide by zero!")
    return a / b

# Main block to catch the exception
try:
    result = divide_numbers(10, 0)
except ValueError as e:
    print(f"Error: {e}")
else:
    print(f"Result: {result}")

Python ایپلی کیشنز میں حسب ضرورت استثنیٰ ہینڈلنگ

اپنی مرضی کے استثنائی کلاسوں کے ساتھ ازگر

# Defining a custom exception
class NegativeNumberError(Exception):
    def __init__(self, value):
        self.value = value
    def __str__(self):
        return f"Negative numbers are not allowed: {self.value}"

# Function to demonstrate raising a custom exception
def check_positive_number(n):
    if n < 0:
        raise NegativeNumberError(n)
    return n

# Main block to catch the custom exception
try:
    number = check_positive_number(-5)
except NegativeNumberError as e:
    print(f"Error: {e}")
else:
    print(f"Number is positive: {number}")

ازگر میں اعلی درجے کی استثناء سے نمٹنے کی تکنیک

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

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

Python میں استثنیٰ ہینڈلنگ پر عام سوالات اور جوابات

  1. میں ازگر میں کسٹم رعایت کیسے بڑھا سکتا ہوں؟
  2. آپ ایک نئی کلاس کی وضاحت کر کے اپنی مرضی کے استثناء کو بڑھا سکتے ہیں جو وراثت میں ملتی ہے۔ Exception اور کا استعمال کرتے ہوئے raise اس کلاس کی مثال کے ساتھ بیان۔
  3. کا مقصد کیا ہے finally بلاک؟
  4. دی finally بلاک کو کوڈ پر عمل درآمد کرنے کے لیے استعمال کیا جاتا ہے جو اس بات سے قطع نظر چلنا چاہیے کہ کوئی استثنا اٹھایا گیا تھا یا نہیں، اکثر صفائی کی کارروائیوں کے لیے استعمال کیا جاتا ہے۔
  5. میں ازگر میں مستثنیات کا سلسلہ کیسے کر سکتا ہوں؟
  6. آپ مستثنیات کو استعمال کر سکتے ہیں۔ from کلیدی لفظ، جو آپ کو اصل استثناء کے سیاق و سباق کو محفوظ رکھتے ہوئے ایک نیا استثناء بڑھانے کی اجازت دیتا ہے۔
  7. ازگر میں سیاق و سباق مینیجر کیا ہے؟
  8. ایک سیاق و سباق مینیجر وسائل کا انتظام کرنے کا ایک طریقہ ہے، کا استعمال کرتے ہوئے with اس بات کو یقینی بنانے کے لیے بیان کہ سیٹ اپ اور ٹیر ڈاون کوڈ کو صحیح طریقے سے عمل میں لایا گیا ہے۔
  9. میں ایک ہی بلاک میں متعدد مستثنیات کو کیسے ہینڈل کروں؟
  10. آپ ایک ہی میں متعدد مستثنیات کو سنبھال سکتے ہیں۔ except استثناء کی اقسام کی ایک بڑی تعداد کی وضاحت کرکے بلاک کریں۔
  11. کیا میں ایک بلاک کے ساتھ تمام مستثنیات کو پکڑ سکتا ہوں؟
  12. ہاں، آپ ننگے استعمال کرکے تمام استثناء کو پکڑ سکتے ہیں۔ except: بیان، لیکن عام طور پر اس کی سفارش نہیں کی جاتی ہے کیونکہ یہ کیڑے چھپا سکتا ہے۔
  13. اگر کوئی استثناء نہ پکڑا جائے تو کیا ہوگا؟
  14. اگر کوئی استثناء نہیں پکڑا جاتا ہے، تو یہ کال اسٹیک کو آگے بڑھاتا ہے اور آخر کار ٹریس بیک دکھاتے ہوئے پروگرام کو ختم کر دیتا ہے۔
  15. میں Python میں مستثنیات کو کیسے لاگ ان کروں؟
  16. آپ استعمال کر کے مستثنیات کو لاگ ان کر سکتے ہیں۔ logging ماڈیول، جو لچکدار لاگنگ کی سہولیات فراہم کرتا ہے۔
  17. ان کے درمیان فرق کیا ھے assert اور raise?
  18. assert حالات کو چیک کرنے کے لیے ڈیبگنگ کے مقاصد کے لیے استعمال کیا جاتا ہے، جبکہ raise عام عملدرآمد کے دوران مستثنیات کو دستی طور پر پھینکنے کے لیے استعمال کیا جاتا ہے۔

ازگر میں استثناء سے نمٹنے کے بارے میں حتمی خیالات

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