ஜாவா விதிவிலக்குகளை சரியான முறையில் கையாள்வது எப்படி

ஜாவா விதிவிலக்குகளை சரியான முறையில் கையாள்வது எப்படி

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





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





ஜாவா விதிவிலக்குகளைப் புரிந்துகொள்வது

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





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

NullPointerException

பூஜ்ய மாற்றத்திற்கு முன் கள் செயலிழக்க வாய்ப்பு உள்ளது.



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

Exception

வகுப்பு அல்லது எந்த துணைப்பிரிவும்





Exception

. ஜாவாவில் அனைத்து வகையான உள்ளமைக்கப்பட்ட விதிவிலக்குகளும் இருந்தாலும், நீங்கள் விரும்பினால் நீங்களும் உருவாக்கலாம். அவற்றில் சில மிகவும் பொதுவான ஜாவா விதிவிலக்குகள் சேர்க்கிறது:

  • NullPointerException
  • NumberFormatException
  • IllegalArgumentException
  • RuntimeException
  • IllegalStateException

நீங்கள் ஒரு விதிவிலக்கு வீசும்போது என்ன நடக்கும்?





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

TO அடுக்கு சுவடு ஒரு விதிவிலக்கு கையாளுபவரைத் தேடும் போது ஜாவா கடந்து வந்த அனைத்து முறைகளின் பட்டியலாகும். ஒரு ஸ்டேக் சுவடு எப்படி இருக்கிறது என்பது இங்கே:

Exception in thread 'main' java.lang.NullPointerException
at com.example.myproject.Book.getTitle(Book.java:16)
at com.example.myproject.Author.getBookTitles(Author.java:25)
at com.example.myproject.Bootstrap.main(Bootstrap.java:14)

இதிலிருந்து நாம் நிறையப் பெறலாம். முதலில், வீசப்பட்ட விதிவிலக்கு a

NullPointerException

. இல் நிகழ்ந்தது

getTitle()

Book.java வின் வரி 16 இல் உள்ள முறை. அந்த முறை இருந்து அழைக்கப்பட்டது

getBookTitles()

ஆசிரியர்.ஜாவாவின் வரி 25 இல். அந்த முறை இருந்து அழைக்கப்பட்டது

main()

Bootstrap.java வின் 14 வது வரிசையில். நீங்கள் பார்க்க முடியும் என, இவை அனைத்தையும் தெரிந்து கொள்வது பிழைத்திருத்தத்தை எளிதாக்குகிறது.

ஆனால் மீண்டும், விதிவிலக்குகளின் உண்மையான நன்மை என்னவென்றால், விதிவிலக்குகளைப் பிடிப்பதன் மூலமும், விஷயங்களைச் சரிசெய்வதன் மூலமும், செயலிழக்காமல் விண்ணப்பத்தை மீண்டும் தொடங்குவதன் மூலமும் நீங்கள் அசாதாரண நிலையை 'கையாள முடியும்'.

குறியீட்டில் ஜாவா விதிவிலக்குகளைப் பயன்படுத்துதல்

உங்களிடம் உள்ளது என்று சொல்லலாம்

someMethod()

அது ஒரு முழு எண்ணை எடுத்து, சில தர்க்கங்களை செயல்படுத்துகிறது, அது முழு எண் 0 க்கும் குறைவாகவோ அல்லது 100 ஐ விட அதிகமாகவோ இருந்தால் உடைக்கலாம். இது ஒரு விதிவிலக்கு எறிய ஒரு நல்ல இடமாக இருக்கலாம்:

என்ன சிம் வழங்கப்படவில்லை மிமீ#2
public void someMethod(int value) {
if (value 100) {
throw new
IllegalArgumentException

இந்த விதிவிலக்கு பிடிக்க, நீங்கள் எங்கு செல்ல வேண்டும்

someMethod()

அழைக்கப்பட்டு பயன்படுத்தவும் முயற்சி-பிடிக்க தொகுதி :

public void callingMethod() {
try {
someMethod(200);
someOtherMethod();
} catch (IllegalArgumentException e) {
// handle the exception in here
}
// ...
}

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

எங்கள் எடுத்துக்காட்டில், நாங்கள் முயற்சி தொகுதிக்குள் நுழைந்து உடனடியாக அழைக்கிறோம்

someMethod()

. 200 என்பது 0 மற்றும் 100 க்கு இடையில் இல்லாததால், ஒரு

IllegalArgumentException

வீசப்படுகிறது. இது உடனடியாக செயல்படுத்துவதை முடித்துவிடும்

someMethod()

, ட்ரை பிளாக்கில் மீதமுள்ள தர்க்கத்தைத் தவிர்க்கிறது (

someOtherMethod()

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

நாங்கள் அழைத்தால் என்ன நடக்கும்

someMethod(50)

மாறாக? தி

IllegalArgumentException

ஒருபோதும் தூக்கி எறியப்படாது.

someMethod()

சாதாரணமாக செயல்படும். முயற்சி தொகுதி சாதாரணமாக, அழைப்பைச் செயல்படுத்தும்

someOtherMethod()

சில முறை () முடிந்ததும். எப்பொழுது

someOtherMethod()

முடிவடைகிறது, பிடிப்பு தொகுதி தவிர்க்கப்படும் மற்றும்

callingMethod()

தொடரும்.

ஒரு முயற்சி தொகுதிக்கு நீங்கள் பல பிடிப்பு தொகுதிகளைக் கொண்டிருக்கலாம் என்பதை நினைவில் கொள்க:

public void callingMethod() {
try {
someMethod(200);
someOtherMethod();
} catch (IllegalArgumentException e) {
// handle the exception in here
} catch (NullPointerException e) {
// handle the exception in here
}
// ...
}

விருப்பத்தேர்வு என்பதையும் கவனியுங்கள் இறுதியாக தொகுதி உள்ளது:

public void method() {
try {
// ...
} catch (Exception e) {
// ...
} finally {
// ...
}
}

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

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

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

public void method() {
try {
// ...
} finally {
// ...
}
}

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

ஜாவாவில் தேர்வுசெய்யப்பட்ட விதிவிலக்குகள் சரிபார்க்கப்பட்டன

பெரும்பாலான மொழிகளைப் போலல்லாமல், ஜாவா வேறுபடுகிறது சரிபார்க்கப்பட்ட விதிவிலக்குகள் மற்றும் சரிபார்க்கப்படாத விதிவிலக்குகள் (எ.கா. C# மட்டும் சரிபார்க்கப்படாத விதிவிலக்குகள் உள்ளன). சரிபார்க்கப்பட்ட விதிவிலக்கு வேண்டும் விதிவிலக்கு எறியப்படும் முறையைப் பிடிக்கவும், இல்லையெனில் குறியீடு தொகுக்கப்படாது.

சரிபார்க்கப்பட்ட விதிவிலக்கை உருவாக்க, இருந்து நீட்டிக்கவும்

Exception

. சரிபார்க்கப்படாத விதிவிலக்கை உருவாக்க, இருந்து நீட்டிக்கவும்

RuntimeException

.

சரிபார்க்கப்பட்ட விதிவிலக்கு எடுக்கும் எந்த முறையும் இதைப் பயன்படுத்தி முறை கையொப்பத்தில் குறிக்க வேண்டும் வீசுகிறார் முக்கிய சொல். ஜாவா உள்ளமைக்கப்பட்டதிலிருந்து

IOException

சரிபார்க்கப்பட்ட விதிவிலக்கு, பின்வரும் குறியீடு தொகுக்கப்படாது:

public void wontCompile() {
// ...
if (someCondition) {
throw new IOException();
}
// ...
}

சரிபார்க்கப்பட்ட விதிவிலக்கு வீசுகிறது என்பதை நீங்கள் முதலில் அறிவிக்க வேண்டும்:

public void willCompile() throws IOException {
// ...
if (someCondition) {
throw new IOException();
}
// ...
}

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

சரிபார்க்கப்பட்ட அல்லது சரிபார்க்கப்படாத விதிவிலக்குகளை நீங்கள் எப்போது பயன்படுத்த வேண்டும்?

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

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

ஜாவா விதிவிலக்கு பயன்பாட்டிற்கான வழிகாட்டுதல்கள்

விதிவிலக்குகள் பயனுள்ளதாக இருக்கும் ஆனால் எளிதில் தவறாக மற்றும் துஷ்பிரயோகம். அவற்றில் குழப்பம் ஏற்படுவதைத் தவிர்க்க உதவும் சில குறிப்புகள் மற்றும் சிறந்த நடைமுறைகள் இங்கே.

  • பொதுவான விதிவிலக்குகளை விட குறிப்பிட்ட விதிவிலக்குகளை விரும்புங்கள். பயன்படுத்தவும் _ _+_ | மேல் | _+_ | முடிந்தால், இல்லையெனில் | _+_ | மேல் | _+_ | எப்பொழுது சாத்தியம்.
  • ஒருபோதும் பிடிக்காதீர்கள் | _+_ | ! தி | _+_ | வகுப்பு உண்மையில் விரிவடைகிறது | _+_ | , மற்றும் பிடிப்பு தொகுதி உண்மையில் வேலை செய்கிறது | _+_ | அல்லது வீசக்கூடியதை நீட்டிக்கும் எந்த வகுப்பும். எனினும், | _+_ _ வகுப்பும் நீட்டிக்கப்படுகிறது | _+_ | , நீங்கள் ஒரு | _+_ | பிடிக்க விரும்பவில்லை ஏனெனில் | _+_ | மீள முடியாத கடுமையான சிக்கல்களைக் குறிக்கிறது.
  • ஒருபோதும் பிடிக்காதீர்கள் | _+_ | ! | _+_ | விரிவடைகிறது | _+_ | , அதனால் பிடிக்கும் எந்தத் தொகுதியும் | _+_ | பிடிக்கும் | _+_ | நீங்கள் என்ன செய்கிறீர்கள் என்று உங்களுக்குத் தெரியாவிட்டால் நீங்கள் குழப்பமடைய விரும்பாத மிக முக்கியமான விதிவிலக்கு அது. அதற்குப் பதிலாக எந்த விதிவிலக்கு பிடிப்பது என்று உங்களுக்குத் தெரியாவிட்டால், எதையும் பிடிக்கவில்லை என்று கருதுங்கள்.
  • பிழைத்திருத்தத்தை எளிதாக்க விளக்கமான செய்திகளைப் பயன்படுத்தவும். நீங்கள் ஒரு விதிவிலக்கை எறியும்போது, ​​நீங்கள் ஒரு | _+_ | ஒரு வாதமாக செய்தி. இந்த செய்தியை கேட்ச் பிளாக்கில் அணுகலாம் முறை, ஆனால் விதிவிலக்கு ஒருபோதும் பிடிபடவில்லை என்றால், ஸ்டேக் ட்ரேஸின் ஒரு பகுதியாக செய்தியும் தோன்றும்.
  • விதிவிலக்குகளைப் பிடிக்கவும் புறக்கணிக்கவும் முயற்சிக்காதீர்கள். சோதிக்கப்பட்ட விதிவிலக்குகளின் சிரமத்தை சமாளிக்க, நிறைய புதிய மற்றும் சோம்பேறி புரோகிராமர்கள் ஒரு கேட்ச் பிளாக் அமைப்பார்கள் ஆனால் அதை காலியாக விடவும். கெட்டது! எப்போதும் அதை அழகாக கையாளவும், ஆனால் உங்களால் முடியாவிட்டால், குறைந்தபட்சம் ஒரு ஸ்டேக் தடத்தை அச்சிடலாம், அதனால் விதிவிலக்கு வீசப்பட்டது என்பதை நீங்கள் அறிவீர்கள். நீங்கள் இதைப் பயன்படுத்தி இதைச் செய்யலாம். _ _+_ | முறை
  • விதிவிலக்குகளை அதிகமாகப் பயன்படுத்துவதில் ஜாக்கிரதை. உங்களிடம் ஒரு சுத்தி இருக்கும்போது, ​​எல்லாமே ஆணி போல் இருக்கும். விதிவிலக்குகளைப் பற்றி நீங்கள் முதலில் அறியும்போது, ​​எல்லாவற்றையும் விதிவிலக்காக மாற்ற வேண்டிய கட்டாயத்தில் நீங்கள் உணரலாம் ... உங்கள் பயன்பாட்டின் கட்டுப்பாட்டு ஓட்டத்தின் பெரும்பகுதி விதிவிலக்கு கையாளுதலுக்கு வரும். நினைவில் கொள்ளுங்கள், விதிவிலக்குகள் 'விதிவிலக்கான' நிகழ்வுகளுக்கானவை!

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

ஏதேனும் கேள்விகள் உள்ளதா? நான் தவறவிட்ட வேறு விதிவிலக்கு தொடர்பான குறிப்புகள் ஏதேனும் தெரியுமா? கீழே உள்ள கருத்துகளில் அவற்றைப் பகிரவும்!

பகிர் பகிர் ட்வீட் மின்னஞ்சல் எந்தவொரு திட்டத்தின் தரவையும் காட்சிப்படுத்த ஒரு தரவு-ஓட்ட வரைபடத்தை எவ்வாறு உருவாக்குவது

எந்தவொரு செயல்முறையின் தரவு-ஓட்ட வரைபடங்கள் (DFD) மூலத்திலிருந்து இலக்குக்கு தரவு எவ்வாறு பாய்கிறது என்பதைப் புரிந்துகொள்ள உதவுகிறது. அதை எப்படி உருவாக்குவது என்பது இங்கே!

அடுத்து படிக்கவும்
தொடர்புடைய தலைப்புகள்
  • நிரலாக்க
  • ஜாவா
எழுத்தாளர் பற்றி ஜோயல் லீ(1524 கட்டுரைகள் வெளியிடப்பட்டன)

ஜோயல் லீ 2018 முதல் MakeUseOf இன் தலைமை ஆசிரியராக உள்ளார். அவருக்கு பி.எஸ். கணினி அறிவியலில் மற்றும் ஒன்பது ஆண்டுகளுக்கும் மேலான தொழில்முறை எழுத்து மற்றும் எடிட்டிங் அனுபவம்.

நல்ல பிக்சல் கலையை உருவாக்குவது எப்படி
ஜோயல் லீயின் மேலும்

எங்கள் செய்திமடலுக்கு குழுசேரவும்

தொழில்நுட்ப குறிப்புகள், மதிப்புரைகள், இலவச மின் புத்தகங்கள் மற்றும் பிரத்யேக ஒப்பந்தங்களுக்கு எங்கள் செய்திமடலில் சேரவும்!

குழுசேர இங்கே சொடுக்கவும்