声明,抛出和捕获异常

本文介绍了一个使用Java设计的Circle类,该类通过异常处理机制确保了半径值的有效性。文章详细展示了如何在构造函数和设置半径的方法中抛出IllegalArgumentException异常,以及在main方法中如何捕获并处理此异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class CircleWithException {
    private double radius;
    private static int numberOfObjects;

    public CircleWithException() {
        this(1.0);

    }

    public CircleWithException(double radius) {
        setRadius(radius);
        numberOfObjects++;
    }

    public void setRadius(double radius) {//参数为负时抛出一个IllegalArgumentException异常
        if (radius >= 0)
            this.radius = radius;
        else
            throw new IllegalArgumentException("Radius cannot be negative");
    }

    public double getRadius() {
        return radius;
    }

    public static int getNumberOfObjects() {
        return numberOfObjects;
    }

}
public class Test {
    public static void main(String[] args) {

        try {
            CircleWithException c1 = new CircleWithException(5);
            CircleWithException c0 = new CircleWithException();
            CircleWithException c2 = new CircleWithException(-5);
            CircleWithException c3 = new CircleWithException(0);
            System.out.println(c3.getRadius());
        } catch (IllegalArgumentException ex) {
            System.out.println(ex.getMessage());//打印描述该异常对象的信息
            System.out.println(ex.toString());//打印三个字符串的连接:1) 异常类的全名;2)“:”(一个冒号和空格)3)getMessage方法
            ex.printStackTrace();//打印Throwable对象和它的调用堆栈信息
        }
        System.out.println(CircleWithException.getNumberOfObjects());


    }
}
"D:\java 12.0\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2019.2\lib\idea_rt.jar=51590:C:\Program Files\JetBrains\IntelliJ IDEA 2019.2\bin" -Dfile.encoding=UTF-8 -classpath D:\IDEA\out\production\IDEA Test
5.0
1.0
Radius cannot be negative
java.lang.IllegalArgumentException: Radius cannot be negative
java.lang.IllegalArgumentException: Radius cannot be negative
	at CircleWithException.setRadius(CircleWithException.java:16)
	at CircleWithException.<init>(CircleWithException.java:9)
	at Test.main(Test.java:9)
2

Process finished with exit code 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值