Selles näites õpime Java-s kohandatud kontrollimata ja kontrollimata erandit looma.
Selle näite mõistmiseks peaksid teil olema teadmised järgmistest Java programmeerimise teemadest:
- Java erandid
- Java erandkäsitlus
- Java klass ja objektid
Näide 1: Java-programm kohandatud kontrollitud erandi loomiseks
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"); ) ) )
Väljund
ArrayList'ile lisatakse Swift (CustomException: Java on juba olemas) Exception Occured
Ülaltoodud näites oleme Exception
klassi laiendanud, et luua kohandatud erand nimega CustomException. Siinkohal kutsume märksõna Exception
kasutades klassi CustomException klassi konstruktorit super()
.
Meetodi sees checkLanguage()
oleme kontrollinud erandi tingimust ja erandi ilmnemisel tegeleb erandiga try … catch block.
Siin on see kontrollitud erand. Samuti saame Java-s luua kontrollimata erandklassi. Kontrollitud ja kontrollimata erandite kohta lisateabe saamiseks külastage Java erandit.
Näide 2: looge kohandatud kontrollimata erandiklass
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"); ) )
Väljund
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)
Ülaltoodud näites oleme RuntimeException
klassi laiendanud, et luua kontrollimata kohandatud erandiklass.
Siin võite märgata, et me pole kuulutanud ühtegi proovimise … püüdmise blokeeringut. Sellepärast, et kontrollimata erandit kontrollitakse käitamise ajal.
Peale selle on kontrollimata erandite muu funktsioon sarnane ülalnimetatud programmiga.