În acest exemplu, vom învăța să creăm excepții personalizate bifate și nebifate în Java.
Pentru a înțelege acest exemplu, ar trebui să aveți cunoștințele despre următoarele subiecte de programare Java:
- Excepții Java
- Java Exception Handling
- Clasa și obiecte Java
Exemplul 1: program Java pentru a crea o excepție verificată personalizat
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"); ) ) )
Ieșire
Swift este adăugat la ArrayList (Excepție personalizată: Java există deja) Excepție a avut loc
În exemplul de mai sus, am extins Exception
clasa pentru a crea o excepție personalizată numită CustomException. Aici, numim constructorul Exception
clasei din clasa CustomException folosind super()
cuvânt cheie.
În interiorul metodei checkLanguage()
, am verificat condiția excepției și, dacă apare excepția, blocul try … catch gestionează excepția.
Aici, aceasta este excepția verificată. Putem crea, de asemenea, o clasă de excepție necontrolată în Java. Pentru a afla mai multe despre excepția bifată și nebifată, accesați Java Exception.
Exemplul 2: creați o clasă de excepție nebifată personalizată
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"); ) )
Ieșire
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)
În exemplul de mai sus, am extins RuntimeException
clasa pentru a crea o clasă de excepție personalizată nebifată.
Aici, puteți observa că nu am declarat nicio încercare … bloc de captură . Acest lucru se datorează faptului că excepția nebifată este verificată în timpul rulării.
În afară de aceasta, alte funcționalități ale excepției necontrolate sunt similare cu programul menționat mai sus.