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 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 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 is 被添加到ArrayList

Exception in thread "main" CustomException: Java already exists

at Main.checkLanguage(Main.java:21)

at Main.main(Main.java:37)

在上面的示例中,我们扩展了RuntimeException类以创建未经检查的自定义异常类。

在这里,您可能已经注意到,我们没有声明任何try ... catch块。这是因为未检查的异常是在运行时检查的。

除此之外,未检查异常的其他功能与上述程序类似。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值