C++ میں مستثنیات کو آسانی سے کیسے ہینڈل کریں۔

C My Mstthnyat Kw Asany S Kys Yn L Kry



پروگرام کے چلنے کے دوران ہونے والے غیر متوقع واقعات کو مستثنیات یا غلطیاں کہا جاتا ہے۔ رن ٹائم کے دوران مستثنیات پائے جاتے ہیں، اور تالیف کے دوران پکڑے نہیں جا سکتے، اس لیے وہ پروگرام میں سنگین مسائل پیدا کر سکتے ہیں۔ C++ پروگرام میں مستثنیات کو اچھی طرح سے ہینڈل کرنا پروگرامر کے لیے مطلوبہ نتائج حاصل کرنے کا بنیادی مقصد ہے۔

C++ میں مستثنیات کو آسانی سے کیسے ہینڈل کریں۔

C++ میں استثنیٰ ہینڈلنگ سے مراد رن ٹائم غلطیوں کا پتہ لگانے اور ان کو مؤثر طریقے سے ہینڈل کرنے کا طریقہ کار ہے، جیسے کہ غلط ان پٹس کو ہینڈل کرنا، ڈویژن آپریشنز میں کسی نمبر کو صفر سے تقسیم کرنا، اور بہت کچھ۔

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







مثال 1: ڈویژن کے دوران استثنیٰ ہینڈلنگ

کوڈ تقسیم کے دوران مستثنیات کو چیک کرنے کے لیے لکھا گیا ہے۔



# شامل کریں
استعمال کرتے ہوئے نام کی جگہ std ;

int مرکزی ( ) {

دگنا عدد، فرق، تقسیم ;

cout << 'ایک عددی قدر درج کریں:' ;
کھانا >> عدد ;

cout <> فرق ;

کوشش کریں {


اگر ( فرق == 0 )
پھینکنا 0 ;


تقسیم = عدد / فرق ;
cout << عدد << '/' << فرق << '=' << تقسیم << endl ;
}

پکڑنا ( int num_exception ) {
cout << 'خرابی! تقسیم کرنے والا نہیں ہو سکتا' << num_exception << endl ;
}

واپسی 0 ;
}

اس پروگرام میں، صارف مین () سیکشن میں اعلان کردہ عدد اور ڈینومینیٹر کی قدر داخل کرتا ہے۔ ٹرائی بلاک میں، ایک if اسٹیٹمنٹ استثنیٰ کو چیک کرنے کے لیے استعمال کیا جاتا ہے جو کہ ڈینومینیٹر صفر ہے یا نہیں۔ چونکہ تقسیم کو صفر تقسیم کرنے والے کے ساتھ انجام نہیں دیا جا سکتا ہے اگر ڈینومینیٹر 0 پایا جاتا ہے، تو یہ ایک استثناء پھینک دے گا اور کیچ بلاک غلطی کی دلیل واپس کر دے گا بصورت دیگر سادہ ڈویژن آپریشن کیا جاتا ہے۔







صارف ڈینومینیٹر میں ایک عدد 42 اور ایک 0 داخل کرتا ہے، جو ایک استثناء دیتا ہے، لہذا پروگرام غلطی کی دلیل واپس کرتا ہے۔



صارف ایک عدد 42 اور 2 کو بطور ڈینومینیٹر داخل کرتا ہے، کیونکہ اس میں کوئی رعایت نہیں پائی جاتی، تقسیم کے بعد نتیجہ واپس آتا ہے۔

مثال 2 عمر کی جانچ کرنے کے لیے استثنیٰ ہینڈلنگ

یہ پروگرام صارف کی عمر میں مستثنیات کو چیک کرتا ہے۔

# شامل کریں
استعمال کرتے ہوئے نام کی جگہ std ;

/*
یہاں، اگر شخص کی عمر 18 سال سے کم ہے تو ہم استثناء (عمر بطور استثنا) ڈالنا چاہتے ہیں۔
*/

int مرکزی ( )
{
// جانچنا کہ آیا ٹرائی بلاک میں عمر 18 سال سے زیادہ ہے۔
کوشش کریں
{
int عمر ;
cout << رسائی کے لیے اپنی عمر درج کریں: ;
کھانا >> عمر ;

اگر ( عمر >= 18 )
{
cout << 'رسائی دی.' ;
}
// اگر عمر 18 سال سے کم ہے تو حسب ضرورت رعایت دی جا رہی ہے۔
اور
{
پھینکنا ( عمر ) ;
}
}
// پھینکے گئے استثناء کو پکڑنا اور مطلوبہ آؤٹ پٹ ڈسپلے کرنا (رسائی سے انکار!)
پکڑنا ( int ایکس )
{
cout << 'رسائی سے انکار کر دیا گیا! آپ نابالغ ہیں۔' << endl ;
}
واپسی 0 ;
}

اس پروگرام میں، عددی قدر کے ساتھ ایک متغیر کی وضاحت کی گئی ہے۔ صارف سے عمر درج کرنے اور بلاک چیک کرنے کو کہا جاتا ہے کہ آیا صارف کی عمر 18 سال سے اوپر یا اس کے برابر ہے۔ اگر یہ درست نہیں ہے تو یہ ایک استثناء دیتا ہے، اور استثنائی بلاک واپس آ جائے گا رسائی سے انکار! دلیل. بصورت دیگر، رسائی دی جائے گی۔

صارف رسائی کی گرانٹ کو چیک کرنے کے لیے 12 سال کی عمر بتاتا ہے، کیونکہ یہ عمر 18 سال سے کم ہے، اس لیے رسائی سے انکار شدہ دلیل واپس کر دی جاتی ہے۔

صارف 20 سال کی عمر بتاتا ہے، کیونکہ یہ 18 سال سے اوپر ہے، اس لیے صارف کو رسائی دی جاتی ہے۔

نوٹ : اگر پروگرام میں کوئی کیچ بلاک نہیں ہے، تو پروگرام غیر معمولی برتاؤ کرے گا اور استثناء کی صورت میں غیر متوقع طور پر ختم ہو جائے گا۔

نتیجہ

C++ میں استثنیٰ ہینڈلنگ سے مراد رن ٹائم غلطیوں کا پتہ لگانے اور انہیں موثر طریقے سے ہینڈل کرنے کا طریقہ کار ہے۔ اس میں تین کلیدی الفاظ شامل ہیں کوشش کریں، پھینکیں اور پکڑیں۔ ٹرائی بلاک میں کوڈ کے لیے استثنیٰ کی جانچ پڑتال کی جاتی ہے، تھرو کی ورڈ اگر مل جاتا ہے تو استثنا کو پھینک دیتا ہے، اور کیچ بلاک ٹرائی بلاک کے لیے پھینکی گئی رعایت کو ہینڈل کرتا ہے۔ مستثنیات کو سنبھالنا رن ٹائم غلطیوں سے بچ کر صارف کے تجربے کو ہموار اور بہترین بناتا ہے۔