第六章 異常作業

題目:

1、實驗要求

    本實驗要求:以情人節送花爲業務背景,體驗自定義異常以及異常處理機制。

    1-1. 業務說明:

        1-1.1. 本實驗以情人節送花爲業務背景,女方提出送花需求,男方送出鮮花。

        1-1.2. 當女方提出送花數超過男方可承受範圍(例如:100朵)時,需要拋出異常。

    1-2. 創建工程並配置環境:

        1-2.1. 限制1. 創建實驗工程,命名爲:SE_JAVA_EXP_E038;

        1-2.2. 限制2. 創建包,命名爲:cn.campsg.java.experiment;

        1-2.3. 限制3. 創建包,命名爲:cn.campsg.java.experiment.exception。

    1-3. 創建送花異常類:

        1-3.1. 限制1. 在cn.campsg.java.experiment.exception 包中創建異常類:


                1)異常類名:RoseException

        1-3.2. 爲異常類RoseException創建0參構造器:

                1)在RoseException構造器內調用父類構造器。

        1-3.3. 爲異常類RoseException創建1參構造器(參數爲字符串類型):

                1)在RoseException構造器內調用父類1參構造器。

    1-4. 創建送花業務類:

        1-4.1. 限制1. 在cn.campsg.java.experiment包中創建送花業務類:

                1)業務類類名:Rose

        1-4.2. 爲類Rose創建私有屬性:

                1)男方鮮花持有數:int total;

        1-4.3. 爲類Rose創建0參構造器:

        1-4.4. 爲類Rose創建1參構造器:

                1)在構造器內對total屬性賦值:鮮花持有數 = 構造器參數值。

        1-4.5. 爲Rose類創建如下方法:


訪問權限

方法名稱

返回值

方法參數

參數說明

方法說明

public

giveRose

void

int num

送花數量

模擬“送花”

                1)該方法用於模擬男方向女方送花。

        1-4.6. 送花業務邏輯描述如下:

                1)當送花需求(參數)小於1時,方法輸出以下信息提示錯誤:

                “送花的數量不正確:數量不能小於1!”

                2)當送花需求(參數)大於男方的鮮花持有數(total)時,方法拋出異常;

                異常爲:RoseException,錯誤信息:"沒錢買" + num + "支玫瑰花"

                3)當有送花需求時,男方鮮花已經送完(total = 0),方法拋出異常;

                異常爲:RoseException,錯誤信息:"沒錢買" + num + "支玫瑰花"

                4)當送花需求(參數)小於等於男方的鮮花持有數(total)時,輸出如下信息:

                "親愛的,送你" + 送花數量 + "朵玫瑰花!" 

                5)同時更新男方的鮮花持有數(total):total = total - num。

    1-5. 顯示送花的結果:

        1-5.1. 限制1. 在cn.campsg.java.experiment包中創建主類:MainClass;

        1-5.2. 爲MainClass創建入口主方法:main;

        1-5.3. 在main中,調用Rose的1參構造器創建1個Rose對象;

        1-5.4. 提示用戶輸入送花數量,提示信息:你想送女朋友多少朵玫瑰(數字):

        1-5.5. 接收用戶輸入的送花數;

        1-5.6. 在main中,執行送花操作並捕獲送花時可能出現的異常;

        1-5.7. 確保送花操作無論是否成功都顯示:無論如何,我都是愛你的。 

RoseException.java

package cn.campsg.java.experiment.exception;

public class RoseException extends Exception{
	private static final long serialVersionUID = 1L;
	public RoseException(){
	}
	public RoseException(String msg){ 
		super(msg);   //父類進行構造
	}
}

Rose.java

package cn.campsg.java.experiment;
import cn.campsg.java.experiment.exception.RoseException;

public class Rose {
	private int total;
	public Rose(){	
	}
	public Rose(int total){
		this.total = total;
	}
	public void giveRose(int num) throws RoseException{   //接收異常類
		if(num<1){
			System.out.println("送花的數量不正確:數量不能小於1!");
		}
		if(num>total){
			throw new RoseException("沒錢買"+num+"支玫瑰花");
		}
		if(num<=total){
			System.out.println("親愛的,送你"+num+"朵玫瑰花!");
			this.total -= num;
		}
	}
}

MainClass.java

package cn.campsg.java.experiment;
import java.util.Scanner;
import cn.campsg.java.experiment.exception.RoseException;

public class MainClass {
	public static void main(String[] args){
		System.out.println("你想送女朋友多少朵玫瑰(數字)");
		Scanner scan = new Scanner(System.in);
		Rose rose = new Rose(100);
		try{
			int num = scan.nextInt();
			rose.giveRose(num);
		}catch(RoseException e){
			System.out.println(e.getMessage());
		}finally {
			scan.close();
			System.out.println("無論如何,我都是愛你的!\n");
		}
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章