1.实验要求
这个实验要求:以情人节鲜花为业务背景,体验自定义异常和异常处理机制。
1-1.业务描述:
1-1.1.这个实验是基于情人节送花的商业背景。女人要花,男人送花。
1-1.2.当女方要求送花数量超出男方承受范围(例如100朵)时,应抛出异常。
1-2.创建项目并配置环境:
1-2.1.限制1。创建一个名为SE_Java_EXP_E038的实验项目;
1-2.2.限制2。创建一个名为.campsg.Java.experience的包;;
1-2.3.3.限制。创建一个名为.campsg.Java.experience.exception的包。
1-3.创建送花的异常类:
1-3.1.限制1。.campsg.Java.experience.exception包中创建一个异常类:
1)异常类名:RoseException
1-3.2.为异常类RoseException创建0参数构造函数:
1)调用RoseException构造函数内的父类构造函数。
1-3.3.为异常类RoseException创建一个1参数构造函数(该参数为字符串类型):
1)调用RoseException构造函数内的父类1参数构造函数。
1-4.创建鲜花配送业务类别:
1-4.1.限制1。.campsg.Java.experience的包中创建一个送花业务类:
1)商务舱名称:罗斯
1-4.2.为玫瑰级创建私有财产:
1)男子持有的鲜花数量:inttotal;
1-4.3.为类Rose创建0参数构造函数:
1-4.4.为类Rose创建一个1参数构造函数:
1)为构造函数中的total属性赋值:持有的花数=构造函数参数值。
1-4.5.为Rose类创建以下方法:
访问权限
方法名
返回值
方法参数
参数描述
方法描述
公众的
giveRose
空的
整数
花的数量
模拟“送花”
1)这个方法用来模拟一个男人给女人送花。
1-4.6.送花的业务逻辑描述如下:
1)当送花需求(参数)小于1时,输出如下信息提示错误:
"花的数量不正确:数量不能少于1!"
2)当送花的需求(参数)大于男方持有的鲜花总数时,方法抛出异常;
异常:RoseException,错误消息:“没钱买” num “玫瑰”
3)有送花需求时,男方已经送花(合计=0),方法抛出异常;
异常:RoseException,错误消息:“没钱买” num “玫瑰”
4)当送花需求(参数)小于等于男子持有的鲜花总数时,输出以下信息:
“亲爱的,送给你” 花量 “一朵玫瑰!”
5)同时更新该男子持有的鲜花总数:total=total-num。
1-5.展示送花的结果:
1-5.1.限制1。.campsg.Java.experience的包中创建主类:mainclass;
1-5.2.创建MainClass的主要入口方法:main;
1-5.3.在main中,调用Rose的1参数构造函数创建一个Rose对象;
1-5.4.提示用户输入花的数量。提示信息:你想送女朋友多少朵玫瑰(数量):
1-5.5.接收用户发送的鲜花数量;
1-5.6.主要执行送花操作,捕捉送花时可能出现的异常;
1-5.7.确保送花操作成功与否表明:无论如何我爱你。
2.实施思路
2-1.创建项目并配置环境。
2-2.创建送花的异常类:
2-2.1..campsg.Java.experience.exception包中创建一个异常类:
1)异常类名:RoseException
2-2.2.为RoseException类创建一个0参数构造函数:
1)调用RoseException构造函数内的父类0参数构造函数。
2-2.3.按照以下形式为RoseException类创建一个1参数构造函数:
提示
公开RoseException(字符串消息){0
}
1)在构造函数中调用父类的1参数构造函数:super(msg);
2-3.创建鲜花配送业务类别:
2-3.1.打造送花商务舱玫瑰;.campsg.Java.experience的包中;
2-3.2.为Rose类创建一个私有属性,该人持有的花的数量:inttotal
2-3.3.为Rose类创建一个0参数构造函数;
2-3.4.按照以下形式为Rose类创建一个1参数构造函数:
提示
公开rose(inttotal){0
}
1)在构造函数中为属性total赋值:total=total-num。
2-3.5.为Rose类创建一个送花方法:giveRose并声明一个自定义异常,其形式如下:
提示
公开无效giveRose(intnum)投掷RoseException{
}
2-3.6.giverose方法的业务逻辑如下:
1)当送花需求(参数)小于1时,输出如下信息提示错误:
"花的数量不正确:数量不能少于1!"
2)当送花的需求(参数)大于男方持有的鲜花总数时,方法抛出异常;
异常:RoseException,错误消息:“没钱买” num “玫瑰”
3)有送花需求时,男方已经送花(合计=0),方法抛出异常;
异常:RoseException,错误消息:“没钱买” num “玫瑰”
?给出提示
如果(合计总数)
扔新的RoseException(“没钱买” num “玫瑰”);
4)当送花需求(参数)小于等于男子持有的鲜花总数时,输出以下信息:
“亲爱的,一朵“ num ”的玫瑰送给你!”
5)同时更新该男子持有的鲜花总数:total=total-num。
?给出提示
“亲爱的,这是给你的” num “一朵玫瑰!”);
这个总数吗-=num;
2-4.展示送花的结果:
2-4.1.在.campsg.Java.experience:mainclass中创建主业务类;;
2-4.2.在MainClass中定义main方法:main;
2-4.3.接收用户发送的鲜花数量:
1)要求用户输入花的数量,并提示声明:你想送多少朵玫瑰给女朋友(数量):。
2)创建扫描仪对象并设置参数:
?给出提示
扫描仪在=新扫描仪;
3)调用Scanner的nextInt方法,获取用户发送的鲜花数量。
2-4.4.在主方法中,创建Rose对象,并初始化该人拥有100多朵花:
?给出提示
罗斯罗斯=新的玫瑰(100朵);
2-4.5.总的来说,执行送花操作,捕捉送花时可能出现的异常:
1)调用Rose的giveRose函数,传入用户输入的花数;
2)捕捉giveRose函数可能引发的Rose异常。
3)在catch块的RoseException对象中打印错误信息。
2-4.6.在finally块中添加finally块并输出到控制台:无论如何我爱你。
?给出提示
试试{
//获取用户输入的玫瑰
intnum=scan.nextint();
//开始送花
rose.giveRoSe(num);
}接住(RoseExceptione){0
system.out.println(e.Getmessage());
}最后{
scan.close();
系统。输出。打印(无论如何,我爱你!
");
}
3.验证和测试
3-1.在项目中定位MainClass主类。
3-2.右键单击MainClass类并选择:运行方式->Java应用程序。
3-3.运行程序,查看输出结果是否符合预期。