Java基础复习---异常练习(二):实现图形面积

本文介绍了一个包含圆形Circle和矩形Rec的图形类实现,通过异常处理机制NoValueException确保了在计算图形面积时输入值的有效性。文章展示了如何避免使用if判断进行错误处理,而是通过自定义异常来实现更合理的错误提示。

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

package exceptiontest2;

/**
 * 
 *代码描述:
 *有一个圆Circle和长方形Rec
 *都可以获取图形的面积getArea()
 *对于计算面积过程中出现非法值value<0,视为出现问题
 *问题用异常NoValueException来描述,
 *且其继承RuntimeException
 * 流程代码和处理代码进行分离 
 * 
 * 
 * 不用if判断 
 * 因为if判断就算计算参数是错的,它会默认给length和high赋默认值0
 * 仍会面积计算
 * 但实际错误后应该进行提示,并不会调用getArea()
 * 问题用异常来解决
 * 
 * @author Administrator
 * 
 */
public class ExceptionTest2 {
	public static void main(String[] agrs) {

		// try {
		Rec r = new Rec(4, 4);
		// Rec p = new Rec(-4, 4);
		r.getArea();
		// p.getArea();
		// } catch (NoValueException e) {
		// // TODO Auto-generated catch block
		// System.out.println(e.toString());
		//
		// }
		Cicrle c = new Cicrle(-1);
		c.getArea();
		System.out.println("over");
	}

}

package exceptiontest2;

public class NoValueException extends RuntimeException {
	NoValueException(String message) {
		super(message);
	}
}
package exceptiontest2;

public interface Shape {

	public void getArea();
}

package exceptiontest2;

public class Rec implements Shape {
	private int length;
	private int high;

	Rec(int len, int hig) {// throws NoValueException {
		this.length = len;
		this.high = hig;
		if (length < 0 || high < 0)
			throw new NoValueException("输入非法值");
	}

	public void getArea() {
		// TODO Auto-generated method stub

		System.out.println(length * high);
	}

}

package exceptiontest2;

public class Cicrle implements Shape {
	private int radium;
	public static final double PI = 3.14;

	public Cicrle(int radium) {
		if (radium < 0)
			throw new NoValueException("非法");
		this.radium = radium;
	}

	@Override
	public void getArea() {
		// TODO Auto-generated method stub
		System.out.println(radium * radium * PI);
	}

}

参考文献:传智播客毕向东Java基础视频教程-day10-04-面向对象(异常-练习)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值