C++ ٹرائی-کیچ-آخر میں

C Rayy Kych Akhr My



C++ مستثنیات کو سنبھالنے کے لیے 'Try-catch' طریقہ فراہم کرتا ہے۔ جب C++ پروگرام میں کوئی استثناء ہوتا ہے، تو یہ 'Try-catch' طریقے پروگرام کے کوڈ کے ایک حصے سے دوسرے حصے میں کنٹرول کو منتقل کرنے میں مدد کرتے ہیں۔ ایک استثناء ایک خرابی ہے جو پروگرام کے چلنے کے دوران ظاہر ہوتی ہے۔ جب کوئی غیر معمولی صورت حال، جیسے کہ صفر سے تقسیم کرنے کی کوشش، پروگرام کے عمل کے دوران پیش آتی ہے، تو C++ کی رعایت پیدا ہوتی ہے اور ہم اپنے کوڈز میں صرف 'Try-catch' طریقہ استعمال کرکے اس صورتحال کو سنبھالتے ہیں۔ اس میں تین کلیدی الفاظ ہیں: 'کوشش کریں'، 'پکڑیں' اور 'پھینکیں۔' 'تھرو' کلیدی لفظ دوسرے کوڈ کے حصوں میں استثنا کو پھینکنے کے لیے استعمال ہوتا ہے۔ C++ پروگرامنگ ہمیں 'آخر میں' کلیدی لفظ کے ساتھ سہولت فراہم نہیں کرتی، لیکن ہم C++ کوڈز میں 'کوشش کریں'، 'کیچ' اور 'تھرو' کلیدی الفاظ استعمال کر سکتے ہیں۔

مثال 1:

'iostream' یہاں شامل ہے، ہیڈر فائل جس میں کئی فنکشنز کا اعلان کیا گیا ہے۔ ہم ان فنکشنز کو استعمال کرتے ہیں جن کا اعلان ہمارے کوڈ میں اس ہیڈر فائل میں کیا گیا ہے، لہذا ہم اس ہیڈر فائل کو شامل کرتے ہیں۔ اس کے بعد، ہمارے پاس 'std' ہے جسے یہاں رکھا گیا ہے کیونکہ اس میں 'cin' اور 'cout' جیسے فنکشنز بھی بیان کیے گئے ہیں۔ ہمیں ان تمام فنکشنز کے ساتھ 'std' ٹائپ کرنے کی ضرورت نہیں ہے اگر ہم اپنے کوڈ کے شروع میں 'namespace std' شامل کرتے ہیں۔ اس کے بعد، یہاں 'main()' فنکشن شروع کیا جاتا ہے جسے C++ پروگرام کا ڈرائیور کوڈ بھی کہا جاتا ہے۔

پھر، ہم یہاں 'Try' کلیدی لفظ استعمال کرتے ہیں جس میں ہم 'my_num1' کو '35' ویلیو کے ساتھ شروع کرتے ہیں۔ یہ یہاں 'int' ڈیٹا ٹائپ متغیر ہے۔ اب، ہم اس متغیر کو 'if' کے اندر رکھتے ہیں اور ایک شرط لگاتے ہیں جو کہتا ہے کہ 'my_num1' کو '98' سے بڑا یا اس کے برابر ہونا چاہیے۔ اگر دی گئی شرط پوری ہو جاتی ہے، تو یہ 'if' کے اندر آگے بڑھتا ہے اور یہاں لکھے گئے بیان پر عمل کرتا ہے۔ ہم 'cout' کا استعمال کرتے ہیں اور شرط پوری ہونے پر ظاہر کرنے کے لیے ایک پیغام داخل کرتے ہیں۔







اس کے بعد، ہم 'اور' رکھنے کے بعد 'تھرو' کلیدی لفظ استعمال کرتے ہیں۔ اس 'تھرو' کلیدی لفظ میں، ہم پیرامیٹر کے طور پر 'my_num1' کو پاس کرتے ہیں۔ ہم اس کے نیچے 'کیچ' حصہ شامل کرتے ہیں۔ ہم 'catch()' کے پیرامیٹر کے طور پر 'my_num2' داخل کرتے ہیں اور پھر اس 'کیچ' حصے کے اندر دوبارہ 'cout' استعمال کرتے ہیں۔ یہ حصہ صرف اس وقت عمل میں آتا ہے جب 'کوشش' والے حصے میں کوئی استثناء ہوتا ہے۔



کوڈ 1:



# شامل کریں
استعمال کرتے ہوئے نام کی جگہ std ;
int مرکزی ( ) {
کوشش کریں {
int my_num1 = 35 ;
اگر ( my_num1 >= 98 ) {
cout << 'رسائی یہاں دی گئی ہے۔' ;
} اور {
پھینکنا ( my_num1 ) ;
}
}
پکڑنا ( int my_num2 ) {
cout << 'یہاں رسائی سے انکار کر دیا گیا ہے۔' << endl ;
cout << 'نمبر یہ ہے:' << my_num2 ;
}
واپسی 0 ;
}

آؤٹ پٹ:
ہم نے جو نمبر درج کیا ہے وہ '35' ہے جو '98' سے کم ہے۔ لہذا، استثنا وہاں ہوتا ہے اور 'کیچ()' حصہ ظاہر ہوتا ہے۔ 'کوشش' کے حصے تک رسائی سے انکار کر دیا گیا ہے۔





مثال 2:

ہم یہاں 'iostream' ہیڈر فائل اور 'namespace std' رکھتے ہیں۔ اس کے بعد، ہم ایک 'division()' فنکشن بناتے ہیں جس میں ہم دو پیرامیٹرز رکھتے ہیں جو کہ 'int' ڈیٹا ٹائپ کے 'numerator' اور 'denominator' ہیں۔ ہم اس 'ڈویژن' فنکشن کی ڈیٹا ٹائپ کو 'ڈبل' پر سیٹ کرتے ہیں۔



اس کے نیچے، ہم 'if()' کا اضافہ کرتے ہیں جس میں ہم یہ شرط شامل کرتے ہیں کہ ڈینومینیٹر صفر کے برابر ہے۔ اس کے بعد، ہم 'تھرو' کی ورڈ استعمال کرتے ہیں اور وہاں ایک پیغام ٹائپ کرتے ہیں۔ جب بھی اس کوڈ میں شرط کے مطابق استثناء ہوتا ہے تو یہ پیغام پیش کیا جاتا ہے۔ اس کے نیچے، ہم 'return' کلیدی لفظ استعمال کرتے ہیں جس میں ہم 'numerator/denominator' رکھتے ہیں۔ تو، یہ تقسیم کا نتیجہ لوٹاتا ہے۔ اب، 'main()' فنکشن کہا جاتا ہے۔

اس کے بعد، 'num1' اور 'num2' کو 'int' متغیر کے طور پر شروع کیا جاتا ہے اور انہیں بالترتیب '89' اور '0' تفویض کیا جاتا ہے۔ پھر، ہم 'ڈبل' ڈیٹا کی قسم کے 'نتیجہ' کو شروع کرتے ہیں۔ یہاں، ہم 'Try' کلیدی لفظ استعمال کرتے ہیں۔ اس حصے میں، ہم اس 'نتیجہ' متغیر کو شامل کرتے ہیں اور اس متغیر کو 'division()' فنکشن تفویض کرتے ہیں۔ ہم اس فنکشن میں دو پیرامیٹرز پاس کرتے ہیں: 'num1' اور 'num2'۔ اس کے نیچے، ہم وہ 'نتیجہ' دکھاتے ہیں جو ہمیں 'division()' فنکشن لگانے کے بعد ملتا ہے۔ اس کے بعد، ہم 'کیچ' کا بھی استعمال کرتے ہیں اور اس پیغام کو ظاہر کرنے کے لیے 'const char* msg' رکھیں جو ہم نے پہلے شامل کیا تھا۔

کوڈ 2:

# شامل کریں
استعمال کرتے ہوئے نام کی جگہ std ;
دگنا تقسیم ( int عدد، int فرق ) {
اگر ( فرق == 0 ) {
پھینکنا 'صفر سے تقسیم یہاں ممکن نہیں!' ;
}
واپسی ( عدد / فرق ) ;
}
int مرکزی ( ) {
int نمبر 1 = 89 ;
int نمبر 2 = 0 ;
دگنا نتیجہ = 0 ;
کوشش کریں {
نتیجہ = تقسیم ( نمبر 1، نمبر 2 ) ;
cout << نتیجہ << endl ;
} پکڑنا ( const چار * پیغام ) {
cerr << پیغام << endl ;
}
واپسی 0 ;
}

آؤٹ پٹ:
وہ نمبر جسے ہم نے پہلے ڈینومینیٹر کے طور پر داخل کیا تھا '0' ہے۔ لہذا، استثنا کوڈ میں ہوتا ہے اور یہ دیا گیا پیغام دکھاتا ہے۔

مثال 3:

یہاں 'ضرب ()' فنکشن بنایا گیا ہے جس میں ہم 'ویلیو' اور 'ملٹی پلیئر' کو 'int' ڈیٹا ٹائپ کے پیرامیٹرز کے طور پر رکھتے ہیں۔ پھر، ہم 'if' کا استعمال کرتے ہیں جس میں ہم ایک ضرب کنڈیشن جوڑتے ہیں جو صفر کے برابر ہے۔ پھر، 'تھرو' رکھا جاتا ہے جہاں ہم ایک بیان شامل کرتے ہیں۔ اس کے بعد، ہمارے پاس 'واپسی' ہے جہاں ہم 'ویلیو * ملٹی پلیئر' متغیرات رکھتے ہیں جن کا ہم نے پہلے اعلان کیا تھا۔ تو، یہ یہاں ضرب کا نتیجہ لوٹاتا ہے۔

اس کے بعد، ہم 'main()' کو کہتے ہیں جہاں ہم بالترتیب '34' اور '0' کی اقدار کے ساتھ 'int value1' اور 'int value2' کا اعلان کرتے ہیں۔ 'int m_res' کا بھی اعلان کیا جاتا ہے اور پھر اسے یہاں 'ضرب ()' فنکشن کہا جاتا ہے۔ اس فنکشن کو انجام دینے کے بعد، نتیجہ اب 'm_res' متغیر میں محفوظ ہو جاتا ہے اور پھر ظاہر ہوتا ہے۔ اس کے بعد، ہم 'کیچ' فنکشن کو استعمال کرتے ہیں اور اس پیغام کو ظاہر کرنے کے لیے 'const char* msg' داخل کرتے ہیں جو ہم نے پہلے 'تھرو' حصے میں شامل کیا تھا۔

کوڈ 3:

# شامل کریں
استعمال کرتے ہوئے نام کی جگہ std ;
دگنا ضرب ( int قدر ، int ضرب ) {
اگر ( ضرب == 0 ) {
پھینکنا 'ہم قدر کو صفر سے ضرب نہیں دیتے!' ;
}
واپسی ( قدر * ضرب ) ;
}
int مرکزی ( ) {
int قدر 1 = 3. 4 ;
int قدر 2 = 0 ;
int m_res ;
کوشش کریں {
m_res = ضرب ( قدر 1، قدر 2 ) ;
cout << m_res << endl ;
} پکڑنا ( const چار * پیغام ) {
cerr << پیغام << endl ;
}
واپسی 0 ;
}

آؤٹ پٹ :
چونکہ ہم نے پہلے جو قدر درج کی تھی اس میں ضرب کے طور پر '0' ہے، اس لیے کوڈ میں ایک استثناء ہے جس کی وجہ سے نوٹس یہاں ظاہر ہوتا ہے۔

مثال 4:

یہاں، ہم 'multiply()' فنکشن بناتے ہیں اور 'number1' اور 'number2' کو 'int' ڈیٹا ٹائپ کے پیرامیٹرز کے طور پر پاس کرتے ہیں۔ اگلا، ہم 'if' آپریٹر کا استعمال کرتے ہوئے اس میں ایک شرط شامل کرتے ہیں جو ایک ضرب ہے جو صفر سے کم یا اس کے برابر ہے۔ اس کے بعد، بیان شامل کیا جاتا ہے جہاں 'پھینکنا' سمجھا جاتا ہے۔ ضرب کا نتیجہ پھر 'واپسی' سیکشن میں واپس آتا ہے جہاں ہم 'نمبر1 * نمبر 2' متغیر داخل کرتے ہیں جس کا ہم نے پہلے اعلان کیا تھا۔

اس کے بعد، ہم 'main()' فنکشن کو شروع کرتے ہیں اور '34' اور '12' اقدار کو بالترتیب 'int newNumber1' اور 'int newNumber2' کو تفویض کرتے ہیں۔ یہاں، 'multiply()' فنکشن کو 'int mResult' کے اعلان کے بعد کہا جاتا ہے۔ اب، اس فنکشن کا نتیجہ 'mResult' متغیر میں محفوظ ہے اور اسے درج ذیل میں پیش کیا گیا ہے۔ پھر ہم 'کیچ' فنکشن کا استعمال کرتے ہیں اور اس پیغام کو ظاہر کرنے کے لیے 'const char* msg' شامل کرتے ہیں جو ہم نے 'throw' سیکشن میں لکھا تھا۔

کوڈ 4:

# شامل کریں
استعمال کرتے ہوئے نام کی جگہ std ;
دگنا ضرب ( int نمبر 1، int نمبر 2 ) {
اگر ( نمبر 2 <= 0 ) {
پھینکنا 'ہم قدر کو صفر یا منفی قدر سے ضرب نہیں دیتے!' ;
}
واپسی ( نمبر 1 * نمبر 2 ) ;
}
int مرکزی ( ) {
int newNum1 = 3. 4 ;
int newNum2 = 12 ;
int ایم کا نتیجہ ;
کوشش کریں {
ایم کا نتیجہ = ضرب ( newNum1، newNum2 ) ;
cout << 'ضرب کا نتیجہ ہے' << ایم کا نتیجہ << endl ;
}
پکڑنا ( const چار * پیغام ) {
cerr << پیغام << endl ;
}
واپسی 0 ;
}

آؤٹ پٹ:
ہم جو قدر شامل کرتے ہیں وہ '12' ہے جس پر ہم شرط شامل کرتے ہیں۔ لہذا، 'ضرب ()' فنکشن انجام دیا جاتا ہے کیونکہ شرط درست نہیں ہے. ضرب کا نتیجہ ظاہر ہوتا ہے۔ 'کوشش' کا حصہ یہاں پر عمل میں لایا جاتا ہے۔

نتیجہ

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