ఈ కథనం ట్రై-క్యాచ్ స్టేట్మెంట్ అంటే ఏమిటి మరియు సి ప్రోగ్రామింగ్లోని ఉదాహరణను ఉపయోగించి ఇది ఎలా అమలు చేయబడుతుందో వివరిస్తుంది.
ట్రై క్యాచ్ స్టేట్మెంట్ అంటే ఏమిటి?
ది ప్రయత్నించండి ప్రకటన మినహాయింపును సృష్టించగల స్టేట్మెంట్ల సేకరణను నిర్వచిస్తుంది. నిర్దిష్ట రకమైన మినహాయింపు జరిగినప్పుడు, క్యాచ్ బ్లాక్ అనేది మినహాయింపు పంపబడుతుంది. కంపైలర్ ఎర్రర్ నోటీసుని అవుట్పుట్ చేస్తుంది లేదా ట్రై/క్యాచ్ బ్లాక్ని హ్యాండిల్ చేయడంలో విఫలమైతే, అది పరిష్కరించబడే వరకు మినహాయింపు కాల్ స్టాక్పై ప్రయాణిస్తూనే ఉంటుంది.
యొక్క సాధారణ వాక్యనిర్మాణం ప్రయత్నించండి-క్యాచ్ ప్రకటన ఇలా ఇవ్వబడింది:
ప్రయత్నించండి {
/*
బహుశా లోపాలను సృష్టించే కొన్ని కోడ్ని చొప్పించండి
*/
}
క్యాచ్ {
/*
ఒక కోడ్ వ్రాయండి కోసం ఉత్పన్నమైన లోపాలను నిర్వహించడం.
*/
}
Cలో ట్రై-క్యాచ్ స్టేట్మెంట్ అంటే ఏమిటి?
మినహాయింపు నిర్వహణకు C మద్దతు ఇవ్వదు మరియు అలా చేయడానికి అంతర్నిర్మిత యంత్రాంగం లేదు. అయితే, మీరు దీనిని ఉపయోగించి కొంత వరకు అనుకరించవచ్చు setjmp మరియు longjmp కాల్స్. స్టాక్ను సందర్శించిన తర్వాత మెమరీని విడుదల చేసే మార్గం లేకుండా, మినహాయింపు-నిర్వహణ మెకానిజమ్లు అసమర్థమైనవి మరియు అసురక్షితమైనవి, మరియు C వద్ద చెత్త కలెక్టర్ లేదు. RAMని ఖాళీ చేయడానికి, మేము సందర్భోచిత నిర్వాహకులను కూడా ఏకీకృతం చేయాల్సి ఉంటుంది.
ఇప్పుడు, మేము కోడ్ మెరుగుదలలు చేస్తున్నప్పుడు, మేము క్రమంగా పరిష్కారాన్ని నిర్మిస్తాము. longjmp మరియు setjmp, అనేవి setjmp.h హెడర్ ఫైల్ ద్వారా అందించబడే రెండు C ఫంక్షన్లు మా ద్వారా ఉపయోగించబడతాయి. setjmp ఫంక్షన్ jmp_buf రకం వేరియబుల్స్ని అంగీకరిస్తుంది మరియు నేరుగా కాల్ చేసినప్పుడు 0ని అందిస్తుంది. అదే jmp_buf వేరియబుల్ను రెండు వేరియబుల్లతో లాంగ్జెఎమ్పిని ఇన్వోక్ చేయడానికి ఉపయోగించినప్పుడు, 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 లో ప్రయత్నించండి కోడ్ బ్లాక్, మినహాయింపులు అయితే ఏర్పడతాయి a క్యాచ్ బ్లాక్ అనేది లోపాలు ఎక్కడ నుండి వస్తాయి ప్రయత్నించండి బ్లాక్లు కనుగొనబడ్డాయి మరియు నిర్వహించబడతాయి. అనేక ప్రోగ్రామింగ్ భాషలు మద్దతు ఇస్తుంది ప్రయత్నించండి-క్యాచ్ బ్లాక్ కానీ C లేదు. ఈ గైడ్ సి ప్రోగ్రామింగ్లో ట్రై-క్యాచ్ స్టేట్మెంట్లను ఉపయోగించే పద్ధతిని వివరించింది.