"ஆமா. நீ இருக்கிறாய். நான் உன்னைத் தேடிக்கொண்டிருக்கிறேன்."
"ஏதாவது நடந்ததா?"
"இல்லை, ஆனால் நாங்கள் இன்னும் படிக்கிறோம்."
"சரி. நான் கேட்கிறேன்."
"விதிவிலக்குகள் பற்றி இன்னும் இரண்டு விஷயங்களை நான் உங்களுக்கு சொல்ல விரும்புகிறேன்:"
"ஜாவா 7 இல், ட்ரை-கேட்ச் கன்ஸ்ட்ரக்ட் பல கேட்ச் பிளாக்குகளின் மூலம் சிறிது நீட்டிக்கப்பட்டது . இந்த எடுத்துக்காட்டைப் பாருங்கள்:"
try
{
…
}
catch (IOException ex)
{
logger.log(ex);
throw ex;
}
catch (SQLException ex)
{
logger.log(ex);
throw ex;
}
try
{
…
}
catch (IOException | SQLException ex)
{
logger.log(ex);
throw ex;
}
"எனவே இப்போது OR ஆபரேட்டர்களால் பிரிக்கப்பட்ட பல விதிவிலக்குகளை எழுதலாமா ('|' என்பது பைனரி அல்லது)?"
"அது சரி. வசதி இல்லையா?"
"ம்ம். ஆனால் கேட்ச் பிளாக்கிற்குள் இருக்கும் விதிவிலக்கு பொருளின் வகை என்ன?"
"எல்லாவற்றிற்கும் மேலாக, ஒரு IOException அதன் முறைகளைக் கொண்டுள்ளது, மேலும் SQLException அதன் முறைகளைக் கொண்டுள்ளது."
"விதிவிலக்கு வகை அவர்களின் பொதுவான மூதாதையர் வகுப்பாக இருக்கும்."
"ஆ. வேறு வார்த்தைகளில் கூறுவதானால், இது பெரும்பாலும் விலக்கு அல்லது இயக்க நேர விதிவிலக்காக இருக்கும் . பிறகு ஏன் கேட்ச்(விதிவிலக்கு இ) என்று எழுதக்கூடாது?"
"சில நேரங்களில் பிழைகளைத் தனித்தனியாகக் கையாளும் போது, அவற்றைத் தொகுக்கவும், சில பிழைகளை ஒரு பதிவில் எழுதவும், மற்றவற்றைத் திரும்பப் பெறவும், மற்றவற்றை வேறு வழியில் கையாளவும் வசதியாக இருக்கும்."
"வேறுவிதமாகக் கூறினால், வெவ்வேறு பிழைகளைக் கையாள்வதற்கான நகல் கேட்ச் பிளாக்குகளின் சிக்கலைத் தீர்ப்பதாக இந்தத் திட்டம் அங்கீகரிக்கப்பட்டுள்ளது."
"ஆ, எனக்கு புரிந்தது. நன்றி, எல்லி."
"அதெல்லாம் இல்லை. இறுதியாக பிளாக் பற்றி இன்னும் கொஞ்சம் சொல்ல விரும்புகிறேன் ."
"உங்களுக்கு ஏற்கனவே தெரியும், இந்த தொகுதி எப்போதும் செயல்படுத்தப்படும்."
"எப்போதும் நான் சொல்லும் போது, முற்றிலும் எப்போதும் என்று அர்த்தம் ."
"உதாரணத்திற்கு:"
try
{
return 1;
}
finally
{
return 0;
}
"இங்கே ட்ரை பிளாக்கில் ரிட்டர்ன் உள்ளது , இறுதியாக பிளாக்கில் ரிட்டர்ன் உள்ளது. எனவே இந்த முறையின் ரிட்டர்ன் மதிப்பு எண் 0 ஆக இருக்கும்."
" இறுதியாக பிளாக் என்ன நடந்தாலும் செயல்படுத்தும். மேலும் அதன் ரிட்டர்ன் ஸ்டேட்மெண்ட் மற்ற ரிட்டர்ன் மதிப்பை அதன் சொந்த மதிப்புடன் மேலெழுதுகிறது."
"நான் பார்க்கிறேன்."
"இருப்பினும், ஒரு முறை ஒரு மதிப்பை வழங்கலாம் அல்லது விதிவிலக்கு அளிக்கலாம். "
"எனவே, முயற்சித் தொகுதியில் ஒரு மதிப்பு திரும்பப் பெற்றாலும், இறுதியாகத் தொகுதி விதிவிலக்கைக் கொடுத்தால் , விளைவு விதிவிலக்காக இருக்கும் . "
" டிரை பிளாக்கில் ஒரு விதிவிலக்கு போடப்பட்டாலும் , இறுதியாக பிளாக்கில் ரிட்டர்ன் ஸ்டேட்மெண்ட் இருந்தால் என்ன செய்வது?"
"அப்படியானால், முறை சரியாக வேலைசெய்து, ரிட்டர்ன் ஸ்டேட்மெண்டில் உள்ள மதிப்பு திரும்பியது போல் இருக்கும்.
உதாரணமாக | விளைவாக |
---|---|
|
0 |
|
இயக்க நேர விதிவிலக்கு |
|
0 |
|
IO விதிவிலக்கு |
"இறுதியாக முறை செயல்படுத்தப்படாமல் இருப்பதற்கான ஒரே காரணம் , System.exit(); முறைக்கு அழைப்பதன் மூலம் நிரலை உடனடியாக நிறுத்துவதாகும் ."
try
{
System.exit(0);
return 1;
}
finally
{
return 0;
}
"நான் பார்க்கிறேன்."
"இந்த தலைப்புகள் அனைத்தும் பொதுவாக நேர்காணல்களில் கேட்கப்படும் என்பதை நினைவில் கொள்ளுங்கள், எனவே நீங்கள் அவற்றைப் புரிந்துகொண்டு நினைவில் வைத்துக் கொள்வது நல்லது."
GO TO FULL VERSION