Programa Java para criar exceção personalizada

Neste exemplo, aprenderemos a criar exceções personalizadas marcadas e não verificadas em Java.

Para entender este exemplo, você deve ter conhecimento dos seguintes tópicos de programação Java:

  • Exceções Java
  • Manipulação de exceções Java
  • Classe e objetos Java

Exemplo 1: programa Java para criar exceção personalizada marcada

 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"); ) ) )

Resultado

 Swift é adicionado ao ArrayList (CustomException: Java já existe) Exceção ocorrida

No exemplo acima, estendemos a Exceptionclasse para criar uma exceção personalizada chamada CustomException. Aqui, chamamos o construtor da Exceptionclasse da classe CustomException usando a super()palavra-chave.

Dentro do método checkLanguage(), verificamos a condição de exceção e, se a exceção ocorrer, o bloco try… catch trata a exceção.

Aqui, esta é a exceção verificada. Também podemos criar uma classe de exceção não verificada em Java. Para saber mais sobre exceção marcada e desmarcada, visite Exceção Java.

Exemplo 2: criar classe de exceção desmarcada personalizada

 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"); ) )

Resultado

 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)

No exemplo acima, estendemos a RuntimeExceptionclasse para criar uma classe de exceção personalizada não verificada.

Aqui, você pode notar que não declaramos nenhum bloco try… catch . É porque a exceção não verificada é verificada em tempo de execução.

Além disso, outra funcionalidade de exceção não verificada é semelhante ao programa mencionado acima.

Artigos interessantes...