1. throwஇயக்குபவர்

ஒரு விதிவிலக்கு ஒரு பிளாக் மூலம் பிடிக்கப்பட்டால் catch, அது ஜாவா இயந்திரத்தில் வீசப்படும் வரை, அது மரபுரிமையாக Exception(அல்லது மாறாக, Throwable) ஒரு பொருள் மட்டுமே. விதிவிலக்கு பொருள் எந்த மந்திர பண்புகளையும் கொண்டிருக்கவில்லை.

விதிவிலக்குகள் எவ்வாறு செயல்படுகின்றன என்பதற்கான அனைத்து தர்க்கங்களும் ஜாவா இயந்திரத்திற்கு விதிவிலக்கு கொடுக்கப்பட்டால் அது செயல்படும் ஒரு சிறப்பு வழி.

ஜாவா மெஷினுக்கான பிடிபட்ட விதிவிலக்கை நீங்கள் எப்போதும் திரும்பப் பெறலாம். இதைச் செய்ய, நீங்கள் ஆபரேட்டரைப் பயன்படுத்த வேண்டும் throw:

throw exception;

உதாரணமாக:

குறியீடு கன்சோல் வெளியீடு
try
{
   int d = 2/0;
}
catch(Exception except)
{
   System.out.println("Caught the exception");
   throw except;
}
Caught the exception

இந்த குறியீட்டில், நாங்கள் ஒரு விதிவிலக்கைப் பிடித்தோம், அதைப் பற்றிய செய்தியை திரையில் காட்டினோம், பின்னர் அதை மீண்டும் வீசினோம்.

catchமீண்டும் வீசப்பட்ட விதிவிலக்கை அதே தொகுதியில் உள்ள மற்ற தொகுதிகளால் பிடிக்க முடியாது try.


2. உங்கள் விதிவிலக்குகள்

ஒரு விதிவிலக்கு பொருளை நீங்களே உருவாக்கலாம்: இது ஒரு பொருள் அதன் வகை Exceptionஅல்லது அதை மரபுரிமையாகக் கொண்ட ஒரு வர்க்கம். மற்றும் அதை எறியுங்கள்.

இது ஒலிப்பதை விட எளிதானது. உதாரணமாக:

குறியீடு கன்சோல் வெளியீடு
try
{
   throw new RuntimeException();
}
catch(Exception except)
{
   System.out.println("Caught the exception");
   throw except;
}
Caught the exception

மேலே உள்ள எடுத்துக்காட்டில், நாங்கள் ஒரு புதிய விதிவிலக்கு பொருளை உருவாக்கி RuntimeException, அதன் வகையை உடனடியாக ஆபரேட்டரைப் பயன்படுத்தி எறிந்தோம் throw.

catchRuntimeException மரபுரிமையாக இருப்பதால், அது உடனடியாக பிளாக்கால் பிடிக்கப்படும் Exception. catch (Exception except)வகுப்பைப் பெறுகின்ற அனைத்து வகுப்புகளின் விதிவிலக்கு பொருள்களையும் குறியீடு பிடிக்கிறது Exception.



3. finallyமுக்கிய வார்த்தை

மற்றொரு முக்கியமான புள்ளி. சில நேரங்களில் ஒரு புரோகிராமர் குறியீட்டில் விதிவிலக்கு ஏற்பட்டுள்ளதா என்பதைப் பொருட்படுத்தாமல் சில செயல்களைச் செய்ய வேண்டும். உதாரணமாக, எழுதுவதற்கு ஒரு கோப்பைத் திறந்தோம் என்று வைத்துக்கொள்வோம். திறந்த கோப்பை அழைப்பதன் மூலம் மூட வேண்டும் close().

try
{
   // Code where an exception might occur
}
catch(ExceptionType name)
{
   // Exception handling code
}
finally
{
   // Code that must executed no matter what happens
}

இந்த கட்டாய செயல்களைச் செய்ய, மற்றொரு வகையான தொகுதி ( finally) கட்டமைப்பில் சேர்க்கப்பட்டது try-catch, இதன் மூலம் கட்டமைப்பை உருவாக்குகிறது try-catch-finally. இது போல் தெரிகிறது:

உதாரணமாக:

FileInputStream source = null;
try
{
   source = new FileInputStream("c:\\note.txt");
   source.read();
}
catch(Exception except)
{
   System.out.println("Caught the exception");
   throw except;
}
finally
{
   if (source != null)
      source.close();
}

finally விதிவிலக்கு உள்ளதா என்பதைப் பொருட்படுத்தாமல், பிளாக்கில் உள்ள குறியீடு எந்தவொரு சந்தர்ப்பத்திலும் செயல்படுத்தப்படும். ஒரு விதிவிலக்கு தூக்கி எறியப்பட்டாலும், பிடிக்காவிட்டாலும், finallyதொகுதி இன்னும் செயல்படுத்தப்படும்.

மூலம், நீங்கள் விதிவிலக்கைப் பிடிக்க விரும்பவில்லை, ஆனால் உங்களுக்கு ஒரு finallyதொகுதி தேவைப்பட்டால், சுருக்கெழுத்து குறியீட்டைப் பயன்படுத்தவும் try-catch-finally: ஒரு try-finallyதொகுதி. இது போல் தெரிகிறது:

try
{
   // Code where an exception might occur
}
finally
{
   // Code that must executed no matter what happens
}