Šajā piemērā mēs iemācīsimies izveidot pielāgotus pārbaudītus un nepārbaudītus izņēmumus Java.
Lai saprastu šo piemēru, jums jāpārzina šādas Java programmēšanas tēmas:
- Java izņēmumi
- Java izņēmumu apstrāde
- Java klase un objekti
1. piemērs: Java programma, lai izveidotu pielāgotu pārbaudītu izņēmumu
import java.util.ArrayList; import java.util.Arrays; // create a checked exception class class CustomException extends Exception ( public CustomException(String message) ( // call the constructor of Exception class super(message); ) ) class Main ( ArrayList languages = new ArrayList(Arrays.asList("Java", "Python", "JavaScript")); // check the exception condition public void checkLanguage(String language) throws CustomException ( // throw exception if language already present in ArrayList if(languages.contains(language)) ( throw new CustomException(language + " already exists"); ) else ( // insert language to ArrayList languages.add(language); System.out.println(language + " is added to the ArrayList"); ) ) public static void main(String() args) ( // create object of Main class Main obj = new Main(); // exception is handled using try… catch try ( obj.checkLanguage("Swift"); obj.checkLanguage("Java"); ) catch(CustomException e) ( System.out.println("(" + e + ") Exception Occured"); ) ) )
Rezultāts
Swift tiek pievienots ArrayList (CustomException: Java jau pastāv) Notika izņēmums
Iepriekš minētajā piemērā mēs esam paplašinājuši Exception
klasi, lai izveidotu pielāgotu izņēmumu ar nosaukumu CustomException. Šeit mēs saucam Exception
klases konstruktoru no CustomException klases, izmantojot super()
atslēgvārdu.
Metodē checkLanguage()
mēs esam pārbaudījuši izņēmuma nosacījumu, un, ja rodas izņēmums, try … catch bloks apstrādā izņēmumu.
Šis ir pārbaudītais izņēmums. Mēs varam arī izveidot nepārbaudītu izņēmumu klasi Java. Lai uzzinātu vairāk par pārbaudītiem un nepārbaudītiem izņēmumiem, apmeklējiet Java izņēmumu.
2. piemērs: izveidojiet pielāgotu nepārbaudītu izņēmumu klasi
import java.util.ArrayList; import java.util.Arrays; // create a unchecked exception class class CustomException extends RuntimeException ( public CustomException(String message) ( // call the constructor of RuntimeException super(message); ) ) class Main ( ArrayList languages = new ArrayList(Arrays.asList("Java", "Python", "JavaScript")); // check the exception condition public void checkLanguage(String language) ( // throw exception if language already present in ArrayList if(languages.contains(language)) ( throw new CustomException(language + " already exists"); ) else ( // insert language to ArrayList languages.add(language); System.out.println(language + " is added to the ArrayList"); ) ) public static void main(String() args) ( // create object of Main class Main obj = new Main(); // check if language already present obj.checkLanguage("Swift"); obj.checkLanguage("Java"); ) )
Rezultāts
Swift is added to the ArrayList Exception in thread "main" CustomException: Java already exists at Main.checkLanguage(Main.java:21) at Main.main(Main.java:37)
Iepriekš minētajā piemērā mēs esam paplašinājuši RuntimeException
klasi, lai izveidotu nepārbaudītu pielāgotu izņēmumu klasi.
Lūk, jūs varat pamanīt, ka mēs neesam deklarējuši nevienu mēģinājumu … ķeršanas bloku. Tas ir tāpēc, ka nepārbaudītais izņēmums tiek pārbaudīts izpildlaikā.
Bez tam cita nepārbaudītu izņēmumu funkcionalitāte ir līdzīga iepriekšminētajai programmai.