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) {
    //Exception 클래스의 생성자를 호출합니다
    super(message);
  }
}
class Main {
  ArrayList<String> languages = new ArrayList<>(Arrays.asList("Java", "Python", "JavaScript"));
  //예외를 확인합니다
  public void checkLanguage(String language) throws CustomException {
    // 만약 language가 이미 ArrayList에 존재하면 예외를 터뜨립니다
    if(languages.contains(language)) {
      throw new CustomException(language + "已存在");
    }
    else {
      // language를 ArrayList에 삽입합니다
      languages.add(language);
      System.out.println(language + "已被添加到ArrayList
    }
  }
  public static void main(String[] args) {
    // Main 클래스의 객체를 생성
    Main obj = new Main();
    //이 예외를 처리하는 try...catch를 사용합니다
    try {
      obj.checkLanguage("Swift");
      obj.checkLanguage("Java");
    }
    catch(CustomException e) {
      System.out.println("[") + e + "] 发生异常");
    }
  }
}

출력 결과

Swift 被添加到ArrayList
[CustomException: Java already exists] 发生异常

在上面的示例中,我们扩展了Exception类以创建一个名为CustomException的自定义异常。 在这里,我们使用super()关键字从CustomException类中调用Exception类的构造函数。

在方法checkLanguage()中,我们检查了异常情况,如果发生异常,则try..catch块将处理该异常。

在这里,这是检查的异常。我们还可以在Java中创建未经检查的异常类。要了解有关已检查和未检查的异常的更多信息,请访问Java Exception

示例2:创建自定义未经检查的异常类

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에 추가되었습니다
thread "main"에서 예외 발생 CustomException: Java already exists
        at Main.checkLanguage(Main.java:21)
        at Main.main(Main.java:37)

위의 예제에서는 RuntimeException 클래스를 확장하여 확인되지 않은 사용자 정의 예외 클래스를 생성했습니다.

여기서, 아마도 어떤 것을 발견했을 수 있습니다. 우리는 어떤 것도 선언하지 않았습니다.try ... catch블록. 이는 확인되지 않은 예외가 실행 중에 확인된다는 것을 의미합니다.

그 이외에, 확인되지 않은 예외의 다른 기능은 위의 프로그램과 유사합니다.

Java 예제 모든 것