3. விதிவிலக்குகளை மடக்குதல்

சரிபார்க்கப்பட்ட விதிவிலக்குகள் கோட்பாட்டில் அருமையாகத் தோன்றின, ஆனால் நடைமுறையில் பெரும் ஏமாற்றமாக மாறியது.

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

அதாவது உங்கள் சூப்பர் பிரபலமான முறையை அழைக்கும் ஒவ்வொரு முறையின் உட்பிரிவிலும் சரிபார்க்கப்பட்ட விதிவிலக்கை நீங்கள் சேர்க்க வேண்டும்throws . அதே போல் throwsஅந்த முறைகளை அழைக்கும் அனைத்து முறைகளின் உட்பிரிவிலும். மற்றும் அந்த முறைகளை அழைக்கும் முறைகள்.

இதன் விளைவாக, throwsதிட்டத்தில் பாதி முறைகளின் உட்பிரிவுகள் புதிய சரிபார்க்கப்பட்ட விதிவிலக்கைப் பெறுகின்றன. நிச்சயமாக உங்கள் திட்டம் சோதனைகளால் மூடப்பட்டிருக்கும், இப்போது சோதனைகள் தொகுக்கப்படுவதில்லை. இப்போது நீங்கள் உங்கள் சோதனைகளில் வீசுதல் உட்பிரிவுகளையும் திருத்த வேண்டும்.

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

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

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

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

try
{
   // Code where a checked exception might occur
}
catch(Exception exp)
{
   throw new RuntimeException(exp);
}

இது மிகவும் அழகான தீர்வு அல்ல, ஆனால் இங்கே குற்றம் எதுவும் இல்லை: விதிவிலக்கு ஒரு உள்ளே அடைக்கப்பட்டது RuntimeException.

விரும்பினால், அதை அங்கிருந்து எளிதாக மீட்டெடுக்கலாம். உதாரணமாக:

குறியீடு குறிப்பு
try
{
   // Code where we wrap the checked exception
   // in a RuntimeException
}
catch(RuntimeException e)
{
   Throwable cause = e.getCause();
   if (cause instanceof Exception)
   {
      Exception exp = (Exception) cause;
      // Exception handling code goes here
   }
}







பொருளின் உள்ளே சேமிக்கப்பட்ட விதிவிலக்கைப் பெறுங்கள் RuntimeException. மாறி அதன் வகையைத் causeதீர்மானித்து , சரிபார்க்கப்பட்டnull

விதிவிலக்கு வகையாக மாற்றலாம் .