【学习笔记:异常】自定义异常

今天稍微做一下笔记,也是今天自己比较迷的一个东西,叫做——自定义异常。
想写一个自定义异常案例的步骤分为三个步骤:
第一个步骤:创建一个可以抛出的类【这里以要计算一个长方形的面积来做演示,并且假定宽度是 5】

public class SquareException extends Exception {
	double length;
	public SquareException(double l){
		length = l;
	}
	public String toString() {
		return "输入长度"+length+"不是正数";
	}
}

其中的extends Exception是为了能够让这个异常类具有可抛性
然后在里面加上一个构造方法。另外在外面定义double length是为了增大他的作用域,如果在SquareException里定义的话,那么下面的toString方法将不能收到其影响
重写toString是为了到时候直接打印出异常类SquareException可以直接打印出它的异常信息。

第二步:搞一个方法来计算这个长方形的面积

class Square{
	public static double getArea(double l)throws Exception{
		if(l<0) {
			throw new Exception("输入的长度为负数");
		}else {
			return l*5;
		}
	}
}

说明:这个就是对他进行一个判断,如果输入的长度是小于0的,那么就要指定这个代码去抛出一个异常,这个异常可以是自己去定义的。在这里定义为了Exception(“输入的长度为负数”);
这个意思就是说会抛出一个名字叫做Exception的异常,而且这个异常的呃信息为:输入的长度为负数

第三步:去搞一个类去对前面的getArea()方法进行一个调用和传参。

public class DefineExceptionDemo {
	public static void main(String[] args) {
		double area = 0;
		Square sq = new Square();
		try {
			 area = sq.getArea(5);
		}catch(Exception ex){
			System.out.println(ex);
		}
		System.out.println("长方形的面积为:"+area);
	}

说明:这里加上了一个main方法去进行方法的调用
首先给area定义一个初始值,让这个变量进行初始化
double area = 0;
这个也得定义在外面,也是为了让他的作用域比较大一些

然后要先创建一个Square类的对象才可以调用这个类中的方法。这里创建的一个对象名字叫sq

接下来就开始调用了:area = sq.getArea(传递的参数);
这里的try语句里面写的是可能会发生异常的语句
那么在这里便是area = sq.getArea(传递的参数);这一句了
因为它传递的参数不一定是一个正数,如果是负数的话需要下面的Catch进行一个异常的捕获。

最后在下面可以进行一个面积的输出,如果输入的参数是符合要求的,那么他就会进行一个计算,try语句不会检测出异常,那么catch语句也就跳过了,然后会进行正常的计。

若有异常那么catch语句就会对其进行一个捕获。
捕获之后就会继续运行程序,但是这个时候参数传递的将不再是一个不符合要求的一个数字,而是一个默认值——0
将参数:0代入计算后,得到的结果自然就是0.0

Flag:(从今天开始练习算法,目标是明年的蓝桥杯,给自己加把劲叭!)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值