In dit voorbeeld zullen we leren om aangepaste aangevinkte en niet-aangevinkte uitzondering in Java te maken.
Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende Java-programmeeronderwerpen:
- Java-uitzonderingen
- Afhandeling van Java-uitzonderingen
- Java-klasse en objecten
Voorbeeld 1: Java-programma om een aangepaste gecontroleerde uitzondering te maken
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"); ) ) )
Uitvoer
Swift is toegevoegd aan de ArrayList (CustomException: Java bestaat al) Uitzondering opgetreden
In het bovenstaande voorbeeld hebben we de Exception
klasse uitgebreid om een aangepaste uitzondering te maken met de naam CustomException. Hier noemen we de constructor van de Exception
klasse uit de CustomException-klasse met behulp van super()
trefwoord.
Binnen de methode checkLanguage()
hebben we de uitzonderingsvoorwaarde gecontroleerd, en als de uitzondering optreedt, verwerkt het try… catch- blok de uitzondering.
Hier is dit de aangevinkte uitzondering. We kunnen ook een ongecontroleerde uitzonderingsklasse in Java maken. Bezoek Java Exception voor meer informatie over aangevinkte en niet-aangevinkte uitzonderingen.
Voorbeeld 2: maak een aangepaste ongecontroleerde uitzonderingsklasse
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"); ) )
Uitvoer
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)
In het bovenstaande voorbeeld hebben we de RuntimeException
klasse uitgebreid om een ongecontroleerde aangepaste uitzonderingsklasse te maken.
Hier kun je zien dat we geen try… catch- blok hebben aangegeven. Dit komt doordat de ongecontroleerde uitzondering tijdens runtime wordt gecontroleerd.
Daarnaast is de andere functionaliteit van de ongecontroleerde uitzondering vergelijkbaar met het hierboven genoemde programma.