English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste exemplo, vamos aprender a criar exceções personalizadas de verificação e não verificadas no Java.
Para entender este exemplo, você deve saber o seguinteProgramação JavaTema:
import java.util.ArrayList; import java.util.Arrays; //Criar uma classe de exceção de verificação personalizada class CustomException extends Exception { public CustomException(String message) { //Chamar o construtor da classe Exception super(message); } } class Main { ArrayList<String> languages = new ArrayList<>(Arrays.asList("Java", "Python", "JavaScript")); //Verificar exceção public void checkLanguage(String language) throws CustomException { // Se language já estiver presente na ArrayList, lançar exceção if(languages.contains(language)) { throw new CustomException(language + "已经存在 } else { // Inserir language na ArrayList languages.add(language); System.out.println(language + "已被添加到ArrayList } } public static void main(String[] args) { // Criar objeto da classe Main Main obj = new Main(); //Usar try...catch para lidar com exceções try { obj.checkLanguage("Swift"); obj.checkLanguage("Java"); } catch(CustomException e) { System.out.println("[") + e + "] 发生异常)); } } }
Resultados de saída
Swift 被添加到ArrayList [CustomException: Java already exists] 发生异常
在上面的示例中,我们扩展了Exception类以创建一个名为CustomException的自定义异常。 在这里,我们使用super()关键字从CustomException类中调用Exception类的构造函数。
在方法checkLanguage()中,我们检查了异常情况,如果发生异常,则try..catch块将处理该异常。
在这里,这是检查的异常。我们还可以在Java中创建未经检查的异常类。要了解有关已检查和未检查的异常的更多信息,请访问Java Exception。
import java.util.ArrayList; import java.util.Arrays; //创建未检查的异常类 class CustomException extends RuntimeException { public CustomException(String message) { //调用RuntimeException的构造函数 super(message); } } class Main { ArrayList<String> languages = new ArrayList<>(Arrays.asList("Java", "Python", "JavaScript")); //检查异常情况 public void checkLanguage(String language) { //如果ArrayList中已存在编程语言,则引发异常 if(languages.contains(language)) { throw new CustomException(language + "已经存在 } else { //将编程语言插入到ArrayList languages.add(language); System.out.println(language + "已被添加到ArrayList } } public static void main(String[] args) { //Criar objeto da classe Main Main obj = new Main(); //Verificar se o idioma de programação já existe obj.checkLanguage("Swift"); obj.checkLanguage("Java"); } }
Resultados de saída
Swift é adicionado ao ArrayList Exception em thread "main" CustomException: Java já existe at Main.checkLanguage(Main.java:21) at Main.main(Main.java:37)
No exemplo acima, estendemos a classe RuntimeException para criar uma classe de exceção personalizada não verificada.
Aqui, você pode ter notado que não declaramos nenhumtry ... catchBloco. Isso é porque as exceções não verificadas são verificadas no tempo de execução.
Além disso, outras funcionalidades além das exceções não verificadas são semelhantes ao programa acima.