• /  20
  • 下載費用: 10.00積分  

Java程序設計_徐紅 王燦_電子課件14_單元3_任務4.ppt

'Java程序設計_徐紅 王燦_電子課件14_單元3_任務4.ppt'
任務四:最大公約數計算器設計單元三:數據與異常處理程序設計教學目標知識目標掌握自定義異常的創建和實現拋出的方法 。能力目標能會使用自定義異常的創建和拋出的方法; 運用異常知識區分異常和錯誤以及正確使用異常處理的優點 。教學內容4任務陳述123知識準備任務實施任務拓展任務實訓5任務描述:  在數學計算或數字分析中,經常會用到計算兩個數的最大公約數的問題。即:輸入兩個正整數,當兩個數字有一個不是正整數時會產生異常。當輸入非整數數字時,也產生異常。輸入無錯誤后,可計算兩個數的最大公約數。 1. 任務陳述 2. 知識準備自定義異常 JAVA內置的異常能夠處理大多數常見的運行時錯誤,但也可以自己定義,自定義異常通常重載Exception構造方法來得到。創建自定義異常是為了表示應用程序的一些錯誤類型,為代碼可能發生的一個或多個問題提供新含義。 2. 知識準備創建用戶異常的格式如下:class 異常類名 extends Exception { public 異常類名(String msg) { super(msg); } }  ?。?)使用關鍵字extends繼承異常類Exception,創建自己的異常類; ?。?)自定義異常的構造方法中參數msg,用來給自定義異常命名。super方法給其父類賦名稱。消息的名稱給父類傳遞消息 2. 知識準備【例3-13】定義一個自定義非整數異常?!驹创a】class NopositiveException extends Exception{  String message;  NopositiveException(int m, int n) {  message = "數字" + m + "或" + n + "不是正整數";  }   public String toString() {  return message; } } 2. 知識準備3.11 拋出異常 throw   在程序設計時有些異常不是系統可以判定的,當邏輯條件滿足某種特定情況時則要主動(手動)拋出異常,即使用throw語句拋出異常,它的基本格式如下:    throw 異常實例對象;   這里異常實例對象一定是Throwable類或者它的一個子類。例如: throw new NopositiveException(); //拋出非整數異常 2. 知識準備3.12 上報異常 throws   如果一個方法可以導致一個異常但不處理該異常,就可以使用throws語句來聲明該異常,其基本語法格式為:返回值 方法名(參數列表) throws 異常列表throws字句列舉了一個方法可能出現的所有異常類型,各個異常類型之間用逗號隔開。 【例3-14】調用方法在控制臺獲得一個整數,getData上報異常。在Main方法中捕獲。 2. 知識準備public class ThrowsDemo { public static void getData() throws NumberFormatException { throw new NumberFormatException(); // 格式不正確上報異常 } public static void main(String[] args) { try { getData(); } catch (Exception e) { System.out.println(e);} }}3.1 解決步驟(1) 打開Eclipse,創建一個類MaxFactor;(2) 在類中定義一個方法,完成最大公約數的計算,聲明該方法會拋出什么異常,同時在該方法內人為拋出一個異常對象;(3) 在類的main方法中調用定義的方法,并且捕獲方法拋出的異常,并進行處理; 3. 任務實施求最大公約數算法算法: 輾轉相除法先用小的一個數除大的一個數,得第一個余數;再用第一個余數除小的一個數,得第二個余數;又用第二個余數除第一個余數,得第三個余數;這樣逐次用后一個數去除前一個余數,直到余數是0為止。那么,最后一個除數就是所求的最大公約(如果最后的除數是1,那么原來的兩個數是互質數)。舉例:求1515和600的最大公約數 第一次:1515÷600,商2余315;第二次:600÷ 315 ,商1余285;第三次:315 ÷ 285 ,商1余30;第四次:285 ÷ 30 ,商9余15;第五次:30 ÷ 15 ,商2余0;1515和600的最大公約數是15 3.2 任務代碼import java.util.Scanner;class NopositiveException extends Exception// 自定義的異常信息 {  String message;  NopositiveException(int m, int n) {  message = "數字" + m + "或" + n + "不是正整數";  }  public String toString() {  return message;}} 3. 任務實施  class Computer {  public int getMaxCommonDivisor(int m, int n) throws NopositiveException {  if (n <= 0 || m <= 0) {  NopositiveException exception = new NopositiveException(m, n);  throw exception;  }  3. 任務實施if (m < n) {int temp = 0;temp = m;m = n;n = temp;}int r = m % n;while (r != 0) { m = n;n = r;r = m % n;}  return n;}} 3. 任務實施  public static void main(String args[]) { // 要輸入的內容整數m=24,n=36  int m = 0, n = 0, result = 0;  Computer a = new Computer();  try {  Scanner input = new Scanner(System.in);  ......  result = a.getMaxCommonDivisor(m, n);System.out.println(m + "和" + n + "的最大公約數 " + result);  } catch (NopositiveException e) {  System.out.println(e.toString());}}} 3. 任務實施 我們在使用JDK的API幫助文檔是用看到包中提供類的方法會說明在使用不當是會上報異常,下面我們以String類的charAt(int index) 方法為例說明throws的用法。打開charAt方法我們看到下列信息: 4. 任務拓展charAt:public char charAt(int index)返回指定索引處的 char 值。 索引范圍為從 0 到 length() - 1。序列的第一個 char 值位于索引 0 處,第二個位于索引 1 處,依此類推,這類似于數組索引。 如果索引指定的 char 值是代理項,則返回代理項值。  指定者:接口 CharSequence 中的 charAt 參數:index - char 值的索引。  返回:此字符串指定索引處的 char 值。第一個 char 值位于索引 0 處。  拋出: IndexOutOfBoundsException - 如果 index 參數為負或小于此字符串的長度?!  ≡谧詈笠恍酗@示拋出IndexOutOfBoundsException。也就是給定索引超范圍會上報該類異常。 4. 任務拓展一、實訓目的掌握throw拋出異常;掌握throws聲明異常;掌握自定義異常二、實訓內容給類的屬性身份證號碼id設置值,當給定的值長度為18時,賦值給id,當值長度不為18時,拋出illegalArgumentException異常,然后捕獲和處理異常。三、簡要提示給身份證號碼id賦值,定義setId()方法。在方法中拋出異常需要使用throw關鍵字,在捕獲和處理異常時需要使用try/catch/finally結構,異常類為IllegalArgumentException。四、實訓思考(1) 如何拋出異常?(2) 聲明異常后,如何捕獲和處理異常。 5. 任務實訓
關 鍵 詞:
java 14 單元 電子 程序設計 任務
 天天文庫所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:Java程序設計_徐紅 王燦_電子課件14_單元3_任務4.ppt
鏈接地址: http://www.476824.live/p-51617490.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服點擊這里,給天天文庫發消息,QQ:1290478887 - 聯系我們

本站為“文檔C2C交易模式”,即用戶上傳的文檔直接賣給(下載)用戶,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有【成交的100%(原創)】。本站是網絡服務平臺方,若您的權利被侵害,侵權客服QQ:1290478887 歡迎舉報。

[email protected] 2017-2027 http://www.476824.live 網站版權所有

粵ICP備19057495號 

收起
展開
球探网即时蓝球比分 股票行情电脑软件 股票投资分析 黑龙江十一选五爱彩乐 新北京pk拾怎么玩 11选五5开奖结果真准网 京融实配 吉林十一选五走势图3oo 浙江11选5预测号码专家 在线股票 东莞股指期货配资