天天看點

基本任務1.4java異常捕捉機制Java異常捕捉機制

Java異常捕捉機制

任務要求:

一、完成一個 java application應用程式,完成c=a/b 的計算并輸出c的結果,可以為a和b在程式中賦初值、或者接收使用者通過鍵盤輸入a和b的數值文本後轉換為數字等,在程式要求當 b 為0時c的計算結果正确。

二、完成一個 java application應用程式,完成一個計算絕對值表達式 |a-b|的功能。要求當b比a大時人為抛出一個自定義異常,在計算絕對值時通過異常捕捉機制完成此絕對值表達式的計算。

任務一代碼:

import java.util.Scanner;//導入掃描器
public class yichangchuli {   //類名
	public static void main(String[] args){//main函數
		int a=0, b=0, c=0;               //定義變量a,b,c用于存放資料
        while(true){       	             //循環體,用于多次輸入輸出
        	System.out.println("請輸入a,b:");//輸出文字提示
        	Scanner s1 = new Scanner(System.in);//建立掃描器對象用于接收鍵盤輸入的數字
        	a = s1.nextInt();                   //将接收到的值賦予a變量
        	Scanner s2 = new Scanner(System.in);
        	b = s2.nextInt();
        	try{                                //try catch異常捕捉語句
        		System.out.println(c=a/b);      //這裡放置可能存在異常的語句
        	}  
        	catch(ArithmeticException e){       //異常的類型以及異常對象
        		System.out.println("除數不能為零,請重新輸入:");//對出現異常時經行的處理語句
        	} 
        	} 
			}
}
           

運作結果:

基本任務1.4java異常捕捉機制Java異常捕捉機制

任務二:

這裡需要用到自定義異常的處理方式,先介紹一下throws和throw的差別以及用法:

throws

  • 用在方法聲明後面,然後跟異常類名
  • 表示抛出異常,由該方法的調用者來處理
  • 表示出現異常的一種可能性,并不一定會出現這些異常

throw

  • 用在方法體内,後面跟的是異常對象名
  • 表示抛出異常,由方法體内的語句進行處理
  • 執行throw一定抛出了某種異常

代碼:

自定義異常類:

package customize;//包名
public class MyException extends Exception {//自定義異常類
	public MyException() {                 //構造方法
	}
	public MyException(String message) {   //有參構造方法
		super(message);                    //super傳遞參數
	}
}
           

異常處理類:

package customize;//包名
public class yichang {//yichang類
	public void  check(int c) throws MyException{//check方法體
		if(c<0) {
			throw new MyException("|a-b|="+(-c));//if語句判斷是否抛出異常		
		}else {
			System.out.println("|a-b|="+c);//輸出語句
		}
	}
}
           

main函數:

package customize;//包名
import java.util.Scanner;//導入掃描器
public class customize {//類名
	public static void main(String[] args) {//main函數體
		Scanner sc = new Scanner(System.in);//建立掃描器對象
		System.out.println("請輸入a,b的值");   //輸出提示文字
		int a = sc.nextInt();              //接收鍵盤輸入的數字
		int b = sc.nextInt();              //接收鍵盤輸入的數字
		int c = a-b;                       //定義c的計算公式
		yichang t = new yichang();         //建立yichang類的對象
		try {                              //異常捕捉
			 t.check(c);                   //調用check異常處理方法
		} catch (MyException e) {          //
			System.out.print(e);           //輸出異常結果
		}
	}
}
           

運作結果:

基本任務1.4java異常捕捉機制Java異常捕捉機制
基本任務1.4java異常捕捉機制Java異常捕捉機制

繼續閱讀