English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Java

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Обработка исключений Java

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java 程序创建自定义异常

Java полная коллекция примеров

在此示例中,我们将学习在Java中创建自定义的已检查和未检查的异常。

要理解此示例,您应该了解以下Java编程主题:

示例1:创建自定义检查异常的Java程序

import java.util.ArrayList;
import java.util.Arrays;
// задалеву маници полекон зактелейста
class CustomException extends Exception {
  public CustomException(String message) {
    // задалеву обремення зактелейста тременть обремення
    super(message);
  }
}
class Main {
  ArrayList<String> languages = new ArrayList<>(Arrays.asList("Java", "Python", "JavaScript"));
  // поличените зактелейста
  public void checkLanguage(String language) throws CustomException {
    // изличените полекон полекон маници 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) {
    // задалеву обремення маници маници Main
    Main obj = new Main();
    // изличените тременть тременть зактелейста
    try {
      obj.checkLanguage("Swift");
      obj.checkLanguage("Java");
    }
    catch(CustomException e) {
      System.out.println("[" + e + "] полнените зактелейст");
    }
  }
}

Результат вывода

Swift был добавлен в ArrayList
[CustomException: Java already exists] Возникло исключение

В предыдущем примере мы расширили класс Exception для создания пользовательской исключения с именем CustomException. Здесь мы используем ключевое слово super() для вызова конструктора класса Exception из класса CustomException.

В методе checkLanguage() мы проверяем исключительные ситуации, и если возникает исключение, его обработит блок try..catch.

Здесь, это проверяемое исключение. Мы также можем создать неchecked-исключения в Java. Чтобы узнать больше о проверяемых и непроверяемых исключениях, пожалуйста, посетитеJava Exception.

Пример 2: Создание пользовательской неchecked-исключения

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) {
    //Создание объекта класса Main
    Main obj = new Main();
    //Проверка наличия языковой программы
    obj.checkLanguage("Swift");
    obj.checkLanguage("Java");
  }
}

Результат вывода

Swift добавлен к ArrayList
Exception in thread "main" CustomException: Java already exists
        at Main.checkLanguage(Main.java:21)
        at Main.main(Main.java:37)

В上面的 примере мы расширили класс RuntimeException для создания未经 проверенных пользовательских исключительных классов.

Здесь, возможно, вы уже заметили, что мы не объявили никакойtry ... catchблок. Это потому, что не проверенные исключения проверяются во время выполнения.

Кроме того, другие функции, не проверенные на исключения, аналогичны вышеуказанному программному обеспечению.

Java полная коллекция примеров