Դաս 19։ Java – Exceptions

0

Բացառությունը/exception-ը (կամ exceptional event-ը) խնդիր է, որը ծագում է ծրագրի գործարկման ընթացքում: Երբ այս խնդիրը ի հայտ է գալիս, ծրագրի նորմալ հոսքը խափանվում է, և ծրագիրը դադարում է իր գործունեությունը ոչ նորմալ կերպով, հետևաբար այս բացառությունները պետք է կարգավորել։
Բացառությունը կարող է առաջանալ տարբեր պատճառներով: Ահա դրանցից մի քանիսը՝

  • Օգտատերը մուտքագրել է անվավեր տվյալներ:
  • Ֆայլը որը անհրաժեշտ է բացել անհնարավոր է գտնել:
  • Ցանցային կապը կորել է հաղորդակցության ընթացքում կամ JVM-ում հիշողությունը անբավարար է:

Այս բացառություններից մի քանիսը կապված են օգտատերի սխալների (user error) հետ, մյուսները՝ ծրագրային սխալների (programmer error) և մի մասը՝ ֆիզիկական ռեսուրսների, որոնք հանդիպել են անհաջողությունների:
Հիմք վերցնելու այս ամենը, մենք ունենք բացառությունների երեք կատեգորիա: Առաջին հերթին անհրաժեշտ է ուսումնասիրել դրանք, որպեսզի հասկանաք թե ինչպես է բացառությունների կարգավորումը աշխատում Java-ում:

Ստուգված բացառություններ/Checked exceptions – բացառություն է, որն առաջանում է գործարկման ժամանակ, դրանք նաև կոչվում են՝ compile time exception-եր։ Այս բացառությունները հնարավոր չէ ուղղակի անտեսվել այդ պահին, և ծրագրավորողը պետք է հոգ տանի այդ խնդրի մասին։

Օրինակ, եթե ծրագրում օգտագործեք FileReader դասը՝ ֆայլից տվյլաները կարդալու համար, և եթե դրա կոնստրուկտորում նշված ֆայլը գոյություն չունի, ապա կհայտնվի FileNotFoundException-ը, և կհուշի ծրագրավորողին կարգավորել հետևյալ բացառությունը:
Օրինակ՝

import java.io.File;
import java.io.FileReader;

public class FilenotFound_Demo {

public static void main(String args[]) {
File file = new File(“E://file.txt”);
FileReader fr = new FileReader(file);
}
}

Եթե փորձեք հավաքել վերը նշված ծրագիրը, դուք կստանաք հետևյալ բացառությունները:
Արդյունքը՝

C:\>javac FilenotFound_Demo.java
FilenotFound_Demo.java:8: error: unreported exception FileNotFoundException; must be caught or declared to be thrown
FileReader fr = new FileReader(file);
^
1 error

Նշում – Քանի որ FileReader դասի read() և close() մեթոդները կանչում են IOException, դուք կարող եք տեսնել որ ծրագիրը խորհուրդ է տալիս կարգավորել IOException- FileNotFoundException-ի հետ միասին:

Չստուգված բացառություններ/Unchecked exceptions – բացառություն է, որը ի հայտ է գալիս կատարման պահին: Այդ իսկ պատճառով կոչվում է նաև Runtime Exceptions։ Սրանք ընդգրկում են ծրագրավորման սխալներ, ինչպիսիք են տրամաբանական սխալները կամ API-ի ոչ պատշաճ օգտագործում: Runtime Exception-ները անտեսվում կոմպիլյացիայի ժամանակ։

Օրինակ, եթե դուք ծրագրում հայտարարել եք զանգվածի չափը 5 և փորձում եք կանչել զանգվածի 6-րդ տարրը, ապա կառաջանա ArrayIndexOutOfBoundsExceptionexception-ը:
Օրինակ՝

public class Unchecked_Demo {

public static void main(String args[]) {
int num[] = {1, 2, 3, 4};
System.out.println(num[5]);
}
}

Եթե փորձեք հավաքել և գործարկել վերը նշված ծրագիրը, դուք կստանաք հետևյալ բացառությունները:
Արդյունքը՝

Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 5
at Exceptions.Unchecked_Demo.main(Unchecked_Demo.java:8)

Սխալներ/ Errors − Սրանք բացառություններ չեն, բայց խնդիրներ են, որոնք առաջանում են օգտատերի կամ ծրագրավորողի հսկողության սահմաններից դուրս: Սխալները սովորաբար անտեսվում են ձեր կոդում, քանի որ հազվադեպ է, որ դուք կարողանք կարգավորել դրանք։ Օրինակ, եթե տեղի ունում բլոկի արտահոսք առաջանում է սխալ: Սխալները անտեսվում են նաև կոմպիլյացիայի ժամանակ:

Հարգելի ընթերցող, խնդրում ենք չմոռանալ like տալ մեր ֆեյսբուքյան էջին, քանի որ նորությունների մեծ մասը առաջինը տեղադրվում է հենց այնտեղ։ Ինչպես նաև հետևեք մեզ այլ սոցիալական ցանցերում և, իհարկե, գրանցվեք մեր բլոգում։

Share.