Tässä esimerkissä opitaan luomaan mukautetut tarkistamattomat ja tarkistamattomat poikkeukset Java-sovelluksessa.
Tämän esimerkin ymmärtämiseksi sinulla on oltava tieto seuraavista Java-ohjelmointiaiheista:
- Java-poikkeukset
- Java-poikkeusten käsittely
- Java-luokka ja objektit
Esimerkki 1: Java-ohjelma mukautetun tarkistetun poikkeuksen luomiseen
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"); ) ) )
Tuotos
Swift lisätään ArrayList-luetteloon (CustomException: Java on jo olemassa) Poikkeus on tapahtunut
Yllä olevassa esimerkissä olemme laajentaneet Exception
luokkaa luomaan mukautetun poikkeuksen nimeltä CustomException. Tässä kutsutaan Exception
luokan rakentaja CustomException-luokasta super()
avainsanalla.
Menetelmän sisällä checkLanguage()
olemme tarkistaneet poikkeusehdot, ja jos poikkeus tapahtuu, try … catch block käsittelee poikkeuksen.
Tässä tämä on tarkistettu poikkeus. Voimme myös luoda Java: n tarkistamattoman poikkeusluokan. Lisätietoja tarkistetuista ja tarkistamattomista poikkeuksista on Java Exception -sivulla.
Esimerkki 2: Luo mukautettu tarkistamaton poikkeusluokka
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"); ) )
Tuotos
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)
Yllä olevassa esimerkissä olemme laajentaneet RuntimeException
luokkaa luomaan tarkistamattoman mukautetun poikkeusluokan.
Täällä voit huomata, että emme ole julistettu yhtään try … catch lohko. Tämä johtuu siitä, että tarkistamaton poikkeus tarkistetaan ajon aikana.
Sen lisäksi muut tarkistamattoman poikkeuksen toiminnot ovat samanlaisia kuin yllä mainittu ohjelma.