C++ இல் விதிவிலக்குகளை எளிதாகக் கையாள்வது எப்படி
C++ இல் விதிவிலக்கு கையாளுதல் என்பது தவறான உள்ளீடுகளைக் கையாளுதல், வகுத்தல் செயல்பாடுகளில் எண்ணை பூஜ்ஜியத்தால் வகுத்தல் மற்றும் பல போன்ற இயக்க நேரப் பிழைகளைக் கண்டறிந்து அவற்றைத் திறமையாகக் கையாளும் பொறிமுறையைக் குறிக்கிறது.
விதிவிலக்கு C++ இல் கையாளுதல் மூன்று முக்கிய வார்த்தைகளை உள்ளடக்கியது: முயற்சி, எறி, மற்றும் பிடிக்க. முயற்சி அறிக்கையானது, குறியீட்டில் விதிவிலக்கு ஏற்படுத்தக்கூடிய குறியீட்டின் தொகுதியை வரையறுக்க பயனரை அனுமதிக்கிறது. த்ரோ திறவுச்சொல், முயற்சிச் சொல்லின் கீழ் உள்ள பிளாக்கைச் சரிபார்த்த பிறகு கண்டறியப்பட்டால் விதிவிலக்கு அளிக்கும். டிரை பிளாக்கில் காணப்பட்ட விதிவிலக்கைக் கையாளக்கூடிய குறியீட்டின் தொகுதியை கேட்ச் முக்கிய வார்த்தை கொண்டுள்ளது.
எடுத்துக்காட்டு 1: பிரிவின் போது விதிவிலக்கு கையாளுதல்
பிரிவின் போது விதிவிலக்குகளை சரிபார்க்க குறியீடு எழுதப்பட்டுள்ளது.
#
பயன்படுத்தி பெயர்வெளி வகுப்பு ;
முழு எண்ணாக முக்கிய ( ) {
இரட்டை numerator, denominator, வகுத்தல் ;
கூட் << 'ஒரு எண் மதிப்பை உள்ளிடவும்:' ;
உண்ணுதல் >> எண் ;
கூட் <> வகுக்கும் ;
முயற்சி {
என்றால் ( வகுக்கும் == 0 )
வீசு 0 ;
பிரிவு = எண் / வகுக்கும் ;
கூட் << எண் << '/' << வகுக்கும் << ' = ' << பிரிவு << endl ;
}
பிடி ( முழு எண்ணாக எண்_விதிவிலக்கு ) {
கூட் << 'பிழை! வகுப்பான் இருக்க முடியாது ' << எண்_விதிவிலக்கு << endl ;
}
திரும்ப 0 ;
}
இந்த நிரலில், பயனர் முக்கிய() பிரிவில் அறிவிக்கப்பட்ட எண் மற்றும் வகுப்பின் மதிப்பை உள்ளீடு செய்கிறார். ட்ரை பிளாக்கில், வகுத்தல் பூஜ்ஜியமா இல்லையா என்பது விதிவிலக்கைச் சரிபார்க்க if அறிக்கை பயன்படுத்தப்படுகிறது. வகுத்தல் 0 என கண்டறியப்பட்டால் பூஜ்ஜிய வகுப்பி மூலம் வகுத்தல் செய்ய முடியாது என்பதால், அது ஒரு விதிவிலக்கை எறியும் மற்றும் கேட்ச் பிளாக் ஒரு பிழை வாதத்தை வழங்கும், இல்லையெனில் எளிய வகுத்தல் செயல்பாடு செய்யப்படுகிறது.
பயனர் வகுப்பில் ஒரு எண் 42 மற்றும் 0 ஐ உள்ளீடு செய்கிறார், இது ஒரு விதிவிலக்கை வீசுகிறது, எனவே நிரல் பிழை வாதத்தை வழங்குகிறது.
பயனர் 42 மற்றும் 2 என்ற எண்களை ஒரு வகுப்பாக உள்ளீடு செய்கிறார், விதிவிலக்கு எதுவும் இல்லை என்பதால், பிரிவிற்குப் பிறகு கிடைக்கும் முடிவு.
எடுத்துக்காட்டு 2 வயதை சரிபார்க்க விதிவிலக்கு கையாளுதல்
இந்த நிரல் பயனரின் வயதில் விதிவிலக்குகளை சரிபார்க்கிறது.
#பயன்படுத்தி பெயர்வெளி வகுப்பு ;
/*
இங்கே, நபரின் வயது 18 க்கு குறைவாக இருந்தால், விதிவிலக்கு (வயது விதிவிலக்காக) போட விரும்புகிறோம்.
*/
முழு எண்ணாக முக்கிய ( )
{
// ட்ரை பிளாக்கில் வயது 18க்கு மேல் உள்ளதா எனச் சரிபார்க்கிறது.
முயற்சி
{
முழு எண்ணாக வயது ;
கூட் << 'அணுக உங்கள் வயதை உள்ளிடவும்:' ;
உண்ணுதல் >> வயது ;
என்றால் ( வயது >= 18 )
{
கூட் << 'அணுகல் வழங்கப்பட்டது.' ;
}
// வயது 18க்கு கீழ் இருந்தால் தனிப்பயன் விதிவிலக்கு அளிக்கப்படும்.
வேறு
{
வீசு ( வயது ) ;
}
}
// எறியப்பட்ட விதிவிலக்கைப் பிடித்து விரும்பிய வெளியீட்டைக் காண்பித்தல் (அணுகல் மறுக்கப்பட்டது!)
பிடி ( முழு எண்ணாக எக்ஸ் )
{
கூட் << 'அணுகல் மறுக்கப்பட்டது! நீங்கள் வயது குறைந்தவர்.' << endl ;
}
திரும்ப 0 ;
}
இந்த நிரலில், முழு எண் மதிப்புடன் ஒரு மாறி வரையறுக்கப்படுகிறது. பயனரின் வயதை உள்ளீடு செய்து, பயனரின் வயது 18க்கு அதிகமாகவோ அல்லது அதற்கு சமமாகவோ இருந்தால், தடுப்புச் சரிபார்ப்புகளை முயற்சிக்குமாறு பயனர் கேட்கப்படுகிறார். அது உண்மையல்ல எனில், அது விதிவிலக்கு அளிக்கும், மேலும் விதிவிலக்கு பிளாக் அணுகல் மறுக்கப்பட்டதைத் தரும்! வாதம். இல்லையெனில், அணுகல் வழங்கப்படும்.
இந்த வயது 18 வயதிற்குட்பட்டதால், அணுகல் மானியத்தைச் சரிபார்க்க பயனர் 12 வயதை உள்ளிடுகிறார், எனவே அணுகல் மறுக்கப்பட்ட வாதம் திரும்பப் பெறப்படுகிறது.
பயனர் 20 வயதை உள்ளீடு செய்கிறார், இது 18 வயதுக்கு மேல் இருப்பதால், பயனருக்கு அணுகல் வழங்கப்படுகிறது.
குறிப்பு : நிரலில் கேட்ச் பிளாக் இல்லை என்றால், நிரல் அசாதாரணமாக நடந்து, விதிவிலக்குகள் ஏற்பட்டால் எதிர்பாராதவிதமாக நிறுத்தப்படும்.
முடிவுரை
C++ இல் விதிவிலக்கு கையாளுதல் என்பது ரன்-டைம் பிழைகளை கண்டறிந்து அவற்றை திறமையாக கையாளும் பொறிமுறையை குறிக்கிறது. இது மூன்று முக்கிய வார்த்தைகளை முயற்சி, எறிதல் மற்றும் பிடிக்கும். ட்ரை பிளாக்கில் உள்ள குறியீட்டிற்காக விதிவிலக்கு சரிபார்க்கப்பட்டது, த்ரோ திறவுச்சொல் கண்டுபிடிக்கப்பட்டால் விதிவிலக்கை வீசுகிறது, மேலும் டிரை பிளாக்கிற்கு எறியப்படும் விதிவிலக்கை கேட்ச் பிளாக் கையாளுகிறது. விதிவிலக்குகளைக் கையாள்வது, இயக்க நேரப் பிழைகளைத் தவிர்ப்பதன் மூலம் பயனர் அனுபவத்தை மென்மையாகவும் சிறப்பாகவும் ஆக்குகிறது.