English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 예제에서는 Java에서 자체 정의된 확인 및 확인되지 않은 예외를 학습합니다.
이 예제를 이해하기 위해, 다음을 이해해야 합니다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。
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블록. 이는 확인되지 않은 예외가 실행 중에 확인된다는 것을 의미합니다.
그 이외에, 확인되지 않은 예외의 다른 기능은 위의 프로그램과 유사합니다.