I dette eksemplet vil vi lære å lage spesialtilpassede og ukontrollerte unntak i Java.
For å forstå dette eksemplet, bør du ha kunnskap om følgende Java-programmeringsemner:
- Java-unntak
- Java Exception Handling
- Java-klasse og objekter
Eksempel 1: Java-program for å lage tilpasset kontrollert unntak
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"); ) ) )
Produksjon
Swift legges til i ArrayList (CustomException: Java eksisterer allerede) Unntak oppstod
I eksemplet ovenfor har vi utvidet Exception
klassen til å lage et tilpasset unntak som heter CustomException. Her kaller vi konstruktøren av Exception
klassen fra klassen CustomException ved hjelp av super()
nøkkelord.
Inne i metoden checkLanguage()
har vi sjekket unntaksbetingelsen, og hvis unntaket oppstår, håndterer prøve … fangstblokken unntaket.
Her er dette det avmerkede unntaket. Vi kan også opprette ukontrollert unntaksklasse i Java. Hvis du vil lære mer om merket og ukontrollert unntak, kan du gå til Java Exception.
Eksempel 2: Opprett tilpasset ukontrollert unntaksklasse
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"); ) )
Produksjon
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 eksemplet ovenfor har vi utvidet RuntimeException
klassen til å lage en ukontrollert tilpasset unntaksklasse.
Her kan du merke at vi ikke har erklært noe forsøk … fangstblokk . Det er fordi det ukontrollerte unntaket er sjekket ved kjøretid.
I tillegg til det, er annen funksjonalitet med unchecked unntak lik det ovennevnte programmet.