C இல் ட்ரை கேட்ச் ஸ்டேட்மென்ட்களை எப்படி பயன்படுத்துவது

C Il Trai Ketc Stetmentkalai Eppati Payanpatuttuvatu



'முயற்சி' மற்றும் 'பிடி' என்ற சொற்கள், குறியீடு அல்லது தரவுச் சிக்கலின் காரணமாக ஒரு நிரல் விதிவிலக்கை எதிர்கொண்டால் என்ன செய்ய வேண்டும் என்பதை விவரிக்கிறது. விதிவிலக்குகள் a இல் கையாளப்படுகின்றன முயற்சி குறியீடு தொகுதி. டிரை பிளாக்குகளில் இருந்து விதிவிலக்குகளைக் கண்டறிந்து கையாள கேட்ச் பிளாக்குகள் பயன்படுத்தப்படுகின்றன. பைதான், சி++ மற்றும் ஜாவாஸ்கிரிப்ட் உள்ளிட்ட பல நிரலாக்க மொழிகள் அடங்கும் முயற்சி-பிடி அறிக்கைகள்.

ட்ரை-கேட்ச் ஸ்டேட்மென்ட் என்றால் என்ன மற்றும் சி புரோகிராமிங்கில் ஒரு உதாரணத்தைப் பயன்படுத்தி அது எவ்வாறு செயல்படுத்தப்படுகிறது என்பதை இந்தக் கட்டுரை விளக்குகிறது.

ட்ரை கேட்ச் ஸ்டேட்மென்ட் என்றால் என்ன?

தி முயற்சி அறிக்கை ஒரு விதிவிலக்கை உருவாக்கக்கூடிய அறிக்கைகளின் தொகுப்பை வரையறுக்கிறது. ஒரு குறிப்பிட்ட வகையான விதிவிலக்கு நிகழும்போது, ​​கேட்ச் பிளாக் என்பது விதிவிலக்கு அனுப்பப்படும் இடமாகும். கம்பைலர் ஒரு பிழை அறிவிப்பை வெளியிடும் அல்லது விதிவிலக்கு, முயற்சி/கேட்ச் பிளாக் அதைக் கையாளத் தவறினால் அது நிவர்த்தி செய்யப்படும் வரை அழைப்பு அடுக்கின் மேல் பயணிக்கும்.







இன் பொது தொடரியல் முயற்சி-பிடி அறிக்கை இவ்வாறு வழங்கப்படுகிறது:



முயற்சி {
/*
பிழைகளை உருவாக்கும் சில குறியீட்டைச் செருகவும்
*/
}
பிடி {
/*
ஒரு குறியீட்டை எழுதுங்கள் க்கான உருவாக்கப்பட்ட பிழைகளை கையாளுதல்.
*/
}

C இல் ட்ரை-கேட்ச் ஸ்டேட்மென்ட் என்றால் என்ன?

விதிவிலக்கு கையாளுதலை C ஆதரிக்காது மற்றும் அவ்வாறு செய்வதற்கான உள்ளமைக்கப்பட்ட பொறிமுறையைக் கொண்டிருக்கவில்லை. இருப்பினும், இதைப் பயன்படுத்தி ஓரளவுக்கு நீங்கள் உருவகப்படுத்தலாம் setjmp மற்றும் longjmp அழைக்கிறது. ஸ்டாக் பார்வையிட்டவுடன் நினைவகத்தை வெளியிட வழியின்றி, விதிவிலக்கு கையாளும் வழிமுறைகள் திறமையற்றவை மற்றும் பாதுகாப்பற்றவை, மேலும் C இல் குப்பை சேகரிப்பான் இல்லை. ரேமை விடுவிக்க, சூழல் மேலாளர்களையும் ஒருங்கிணைக்க வேண்டியிருக்கும்.



இப்போது, ​​குறியீடு மேம்பாடுகளைச் செய்யும்போது, ​​படிப்படியாக ஒரு தீர்வை உருவாக்குவோம். longjmp மற்றும் setjmp ஆகியவை setjmp.h ஹெடர் கோப்பால் வழங்கப்படக்கூடிய இரண்டு C செயல்பாடுகள் எங்களால் பயன்படுத்தப்படும். setjmp செயல்பாடு jmp_buf வகை மாறிகளை ஏற்றுக்கொள்கிறது மற்றும் நேரடியாக அழைக்கப்படும் போது 0 ஐ வழங்குகிறது. அதே jmp_buf மாறி இரண்டு மாறிகள் கொண்டு longjmp ஐ செயல்படுத்த பயன்படுத்தப்படும் போது, ​​setjmp செயல்பாடு longjmp இன் இரண்டாவது வாதத்தின் மதிப்புடன் பொருந்தக்கூடிய மதிப்பை வழங்குகிறது.





மேலே உள்ள செயலாக்கத்தின் எடுத்துக்காட்டு பின்வருமாறு கொடுக்கப்பட்டுள்ளது:

# அடங்கும்
# அடங்கும்
#வரையறுத்து முயற்சிக்கவும் {jmp_buf buf_state; என்றால் (!setjmp(buf_state)) {
#வரையறை பிடி } வேறு {
#வரையறை ENDTRY }} போது(0)
# THROW longjmp (buf_state, 1) ஐ வரையறுக்கவும்
முழு எண்ணாக ( )
{
முயற்சி {
printf ( 'அறிக்கை சோதனையை முயற்சிக்கவும் \n ' ) ;
வீசு;
printf ( THROW பிளாக் ஏற்கனவே விதிவிலக்கை எறிந்துவிட்டதால், அறிக்கை தோன்றக்கூடாது \n ' ) ;
}
பிடி {
printf ( 'விதிவிலக்கு கிடைத்தது \n ' ) ;
}
ENDTRY;
திரும்ப 0 ;
}

மேலே உள்ள சி திட்டத்தில், தி ENDTRY டூ-வைல் பிளாக்கின் மூடும் பகுதியை வழங்குவதற்கு செயல்பாடு பயன்படுத்தப்படுகிறது.



முடிவுரை

ஒரு நிரல் இயங்கும் போது தரவு அல்லது குறியீட்டு பிழை காரணமாக விதிவிலக்கை எதிர்கொண்டால், ' முயற்சி 'மற்றும்' பிடி 'அதை எவ்வாறு நிர்வகிப்பது என்பதை விவரிக்கவும். ஒரு முயற்சி குறியீடு தொகுதி, விதிவிலக்குகள் ஏற்படும் போது a பிடி தொகுதி என்பது பிழைகள் எங்கிருந்து வருகிறது முயற்சி தொகுதிகள் கண்டுபிடிக்கப்பட்டு கையாளப்படுகின்றன. பல நிரலாக்க மொழிகள் ஆதரிக்கின்றன முயற்சி-பிடி தடை ஆனால் C இல்லை. இந்த வழிகாட்டி C நிரலாக்கத்தில் ட்ரை-கேட்ச் ஸ்டேட்மென்ட்களைப் பயன்படுத்துவதற்கான ஒரு முறையை விவரித்துள்ளது.