В този пример ще се научим да създаваме персонализирано и непроверено изключение в Java.
За да разберете този пример, трябва да имате познанията по следните теми за програмиране на Java:
- Java изключения
- Обработка на изключения в Java
- Java клас и обекти
Пример 1: Програма Java за създаване на персонализирано изключение
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"); ) ) )
Изход
Swift се добавя към ArrayList (CustomException: Java вече съществува) Получено изключение
В горния пример разширихме Exception
класа, за да създадем персонализирано изключение, наречено CustomException. Тук извикваме конструктора на Exception
класа от класа CustomException, използвайки super()
ключова дума.
Вътре в метода checkLanguage()
сме проверили условието за изключение и ако възникне изключението, блокът try … catch обработва изключението.
Тук това е провереното изключение. Също така можем да създадем непроверен клас на изключение в Java. За да научите повече за проверено и непроверено изключение, посетете Java Exception.
Пример 2: Създайте персонализиран непроверен клас на изключение
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"); ) )
Изход
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)
В горния пример разширихме RuntimeException
класа, за да създадем непроверен потребителски клас за изключение.
Тук можете да забележите, че не сме декларирали опит … catch block. Това е така, защото непровереното изключение се проверява по време на изпълнение.
Освен това друга функционалност на непроверено изключение е подобна на гореспоменатата програма.