I dette eksempel lærer vi at oprette brugerdefineret kontrolleret og ikke-markeret undtagelse i Java.
For at forstå dette eksempel skal du have kendskab til følgende Java-programmeringsemner:
- Java-undtagelser
- Java Undtagelse Håndtering
- Java-klasse og objekter
Eksempel 1: Java-program til oprettelse af brugerdefineret kontrolleret undtagelse
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"); ) ) )
Produktion
Swift føjes til ArrayList (CustomException: Java eksisterer allerede) Undtagelse opstået
I ovenstående eksempel har vi udvidet Exception
klassen til at oprette en brugerdefineret undtagelse ved navn CustomException. Her kalder vi konstruktøren af Exception
klassen fra klassen CustomException ved hjælp af super()
nøgleord.
Inde i metoden checkLanguage()
har vi kontrolleret undtagelsestilstanden, og hvis undtagelsen forekommer, håndterer prøve … fangstblokken undtagelsen.
Her er dette den kontrollerede undtagelse. Vi kan også oprette ikke-markeret undtagelsesklasse i Java. For at lære mere om afkrydset og ikke-markeret undtagelse, besøg Java Exception.
Eksempel 2: Opret brugerdefineret ikke-markeret undtagelsesklasse
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"); ) )
Produktion
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)
I ovenstående eksempel har vi udvidet RuntimeException
klassen til at oprette en ukontrolleret brugerdefineret undtagelsesklasse.
Her kan du bemærke, at vi ikke har erklæret noget forsøg … fangstblok . Det er fordi den ikke-markerede undtagelse kontrolleres ved kørsel.
Derudover svarer andre funktioner til ikke-markeret undtagelse til det ovennævnte program.