C میں ٹرائی کیچ اسٹیٹمنٹس کا استعمال کیسے کریں۔

C My Rayy Kych As Y Mn S Ka Ast Mal Kys Kry



الفاظ 'کوشش کریں' اور 'کیچ' بیان کرتے ہیں کہ جب کسی پروگرام کو کوڈ یا ڈیٹا کے مسئلے کی وجہ سے استثناء کا سامنا کرنا پڑتا ہے تو کیا کرنا ہے۔ مستثنیات کو a میں سنبھالا جاتا ہے۔ کوشش کریں کوڈ کا بلاک. کیچ بلاکس کو آزمانے والے بلاکس سے مستثنیات کو تلاش کرنے اور ہینڈل کرنے کے لیے استعمال کیا جاتا ہے۔ بہت سی پروگرامنگ زبانیں، بشمول Python، C++، اور JavaScript، شامل ہیں۔ پکڑنے کی کوشش بیانات

یہ آرٹیکل ظاہر کرتا ہے کہ ٹرائی کیچ سٹیٹمنٹ کیا ہے اور اسے سی پروگرامنگ میں ایک مثال کے ذریعے کیسے لاگو کیا جاتا ہے۔

ٹرائی کیچ اسٹیٹمنٹ کیا ہے؟

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







کی عمومی ترکیب پکڑنے کی کوشش بیان اس طرح دیا گیا ہے:



کوشش کریں {
/*
کچھ کوڈ داخل کریں جو ممکنہ طور پر غلطیاں پیدا کرے گا۔
*/
}
پکڑنا {
/*
ایک کوڈ لکھیں۔ کے لیے پیدا شدہ غلطیوں کو سنبھالنا۔
*/
}

C میں ٹرائی کیچ سٹیٹمنٹ کیا ہے؟

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



اب، جیسا کہ ہم کوڈ میں بہتری لائیں گے، ہم آہستہ آہستہ ایک حل تیار کریں گے۔ longjmp اور setjmp، دو C فنکشنز ہیں جو setjmp.h ہیڈر فائل کے ذریعے فراہم کیے جا سکتے ہیں جو ہم استعمال کریں گے۔ setjmp فنکشن jmp_buf قسم کے متغیرات کو قبول کرتا ہے اور جب اسے براہ راست بلایا جاتا ہے تو 0 لوٹاتا ہے۔ جب ایک ہی jmp_buf متغیر کو دو متغیرات کے ساتھ longjmp کو استعمال کرنے کے لیے استعمال کیا جاتا ہے، تو setjmp فنکشن ایک ایسی قدر لوٹاتا ہے جو longjmp کی دوسری دلیل کی قدر سے ملتی ہے۔





مندرجہ بالا نفاذ کی ایک مثال اس طرح دی گئی ہے:

# شامل کریں
#include
#dfine TRY do { jmp_buf buf_state; اگر ( !setjmp(buf_state)) {
#کیچ کی وضاحت کریں } اور {
#define ENDTRY }} جبکہ(0)
#Define THROW longjmp(buf_state, 1)
اہم int ( )
{
کوشش کریں۔ {
printf ( 'بیان کی جانچ کرنے کی کوشش کریں۔ \n ' ) ;
پھینکنا؛
printf ( 'بیان ظاہر نہیں ہونا چاہئے، کیونکہ THROW بلاک نے پہلے ہی استثناء کو پھینک دیا ہے۔ \n ' ) ;
}
پکڑو {
printf ( 'استثنیٰ حاصل ہے۔ \n ' ) ;
}
ENDTRY؛
واپسی 0 ;
}

مندرجہ بالا سی پروگرام میں، کوشش ختم کریں۔ فنکشن کو do-while بلاک کا اختتامی حصہ فراہم کرنے کے لیے استعمال کیا جاتا ہے۔



نتیجہ

اگر کسی پروگرام کے چلتے وقت ڈیٹا یا کوڈنگ کی غلطی کی وجہ سے کسی استثناء کا سامنا کرنا پڑتا ہے، ' کوشش کریں 'اور' پکڑنا اس کا انتظام کرنے کا طریقہ بیان کریں۔ ایک ___ میں کوشش کریں کوڈ کا بلاک، استثناء پائے جاتے ہیں جبکہ a پکڑنا بلاک وہ جگہ ہے جہاں سے غلطیاں ہوتی ہیں۔ کوشش کریں بلاکس پائے جاتے ہیں اور سنبھالے جاتے ہیں۔ بہت سی پروگرامنگ زبانیں سپورٹ کرتی ہیں۔ پکڑنے کی کوشش بلاک لیکن C نہیں کرتا۔ اس گائیڈ نے C پروگرامنگ میں ٹرائی کیچ اسٹیٹمنٹس کو استعمال کرنے کا طریقہ بیان کیا ہے۔