Šiame pavyzdyje mes išmoksime sukurti pasirinktinę patikrintą ir nepažymėtą „Java“ išimtį.
Norėdami suprasti šį pavyzdį, turite žinoti šias Java programavimo temas:
- „Java“ išimtys
- „Java“ išimčių tvarkymas
- „Java“ klasė ir objektai
1 pavyzdys: „Java“ programa, skirta sukurti pasirinktinai patikrintą išimtį
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"); ) ) )
Rezultatas
„Swift“ įtraukiama į „ArrayList“ („CustomException“: „Java“ jau egzistuoja)
Ankstesniame pavyzdyje mes išplėtėme Exception
klasę, kad sukurtume pasirinktinę išimtį, pavadintą „CustomException“. Čia mes vadiname Exception
klasės konstruktorių iš „CustomException“ klasės, naudodami super()
raktinį žodį.
Metodo viduje checkLanguage()
patikrinome išimties sąlygą, o jei pasitaiko išimtis, „ try… catch block“ tvarko išimtį.
Čia tai yra pažymėta išimtis. Taip pat galime sukurti „Java“ netikrinamą išimčių klasę. Norėdami sužinoti daugiau apie pažymėtas ir nepažymėtas išimtis, apsilankykite „Java“ išimtyje.
2 pavyzdys: sukurkite pasirinktinę nepažymėtą išimčių klasę
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"); ) )
Rezultatas
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)
Ankstesniame pavyzdyje mes išplėtėme RuntimeException
klasę, kad sukurtume nepažymėtą pasirinktinių išimčių klasę.
Čia galite pastebėti, kad mes nedeklaravome jokio bandymo … sugavimo bloko. Taip yra todėl, kad nepatvirtinta išimtis yra tikrinama vykdymo metu.
Be to, kita nepatikrintų išimčių funkcija yra panaši į pirmiau minėtą programą.