單元3_任務三 除法計算器程序設計_第1頁
單元3_任務三 除法計算器程序設計_第2頁
單元3_任務三 除法計算器程序設計_第3頁
單元3_任務三 除法計算器程序設計_第4頁
單元3_任務三 除法計算器程序設計_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 Java Java 程序設計程序設計單元三:數(shù)據(jù)與異常處理程序設計單元三:數(shù)據(jù)與異常處理程序設計 Java Java 程序設計程序設計 知識目標 理解異常的概念和用途 掌握使用try-catch-finally語句結(jié)構(gòu) 能力目標 能夠使用try-catch-finally語句進行異常處理 Java Java 程序設計程序設計4任務陳述任務陳述123知識準備知識準備任務實施任務實施任務拓展任務拓展任務實訓任務實訓5 Java Java 程序設計程序設計任務描述:任務描述: 編寫一個除法計算器,程序要求在出現(xiàn)除數(shù)為零和除數(shù)、被除數(shù)中有一個不是數(shù)字的情況時進行相應的處理。當調(diào)用存放在數(shù)組中的計算結(jié)

2、果,數(shù)組有可能產(chǎn)生索引越界,對這種情況進行捕捉和處理。 1. 任務陳述任務陳述 Java Java 程序設計程序設計 2. 知識準備知識準備 正常情況下,小王每日開車去上班,耗時正常情況下,小王每日開車去上班,耗時大約大約30分鐘分鐘但是,異常情況遲早要發(fā)生!但是,異常情況遲早要發(fā)生!一路暢通一路暢通堵車!堵車!撞車!撞車!生活中的異常生活中的異常 Java Java 程序設計程序設計 2. 知識準備知識準備 異常就是在程序的運行過程中所發(fā)生的不異常就是在程序的運行過程中所發(fā)生的不正常的事件,它會中斷正在運行的程序正常的事件,它會中斷正在運行的程序繞行或者等待繞行或者等待請求交警解決請求交警解

3、決異常!異常!面對異常該怎么辦呢?通常情況下,我們會這樣面對異常該怎么辦呢?通常情況下,我們會這樣處理:處理:程序運行程序運行程序中斷運行程序中斷運行堵車!堵車!撞車!撞車!生活中,我們會根據(jù)不同的異常進行相應的處理生活中,我們會根據(jù)不同的異常進行相應的處理,而不會就此中斷我們的生活,而不會就此中斷我們的生活 Java Java 程序設計程序設計 2. 知識準備知識準備 Java編程語言使用異常處理機制為程序提編程語言使用異常處理機制為程序提供了錯誤處理的能力供了錯誤處理的能力程序中預先想好了程序中預先想好了 對付異常的處理辦法對付異常的處理辦法 異常!異常! 程序運行程序運行處理完畢,程序繼

4、續(xù)運行處理完畢,程序繼續(xù)運行對異常進行處理對異常進行處理什么是異常處理什么是異常處理 Java Java 程序設計程序設計 2. 知識準備知識準備 Java的異常處理是通過的異常處理是通過5個關(guān)鍵字來實現(xiàn)的:個關(guān)鍵字來實現(xiàn)的:try、catch、 finally、throw、throws 捕獲異常捕獲異常 catchtryfinally執(zhí)行可能產(chǎn)生執(zhí)行可能產(chǎn)生 異常的代碼異常的代碼 捕獲異常捕獲異常 無論是否發(fā)生異常,無論是否發(fā)生異常,代碼總能執(zhí)行代碼總能執(zhí)行手動拋出異常手動拋出異常 拋出異常拋出異常 throw聲明異常聲明異常 聲明方法可能要聲明方法可能要拋出的各種異常拋出的各種異常 thr

5、owsJava中如何進行異常處理中如何進行異常處理 Java Java 程序設計程序設計 2. 知識準備知識準備方方 法法 名名說說 明明Exception 異常層次結(jié)構(gòu)的根類異常層次結(jié)構(gòu)的根類ArithmeticException算術(shù)錯誤情形,如以零作除數(shù)算術(shù)錯誤情形,如以零作除數(shù)ArrayIndexOutOfBoundsException數(shù)組下標越界數(shù)組下標越界NullPointerException嘗試訪問嘗試訪問 null null 對象成員對象成員ClassNotFoundException不能加載所需的類不能加載所需的類InputMismatchException欲得到數(shù)據(jù)類型與實

6、際輸入類型不匹配欲得到數(shù)據(jù)類型與實際輸入類型不匹配IllegalArgumentException方法接收到非法參數(shù)方法接收到非法參數(shù)ClassCastException對象強制類型轉(zhuǎn)換出錯對象強制類型轉(zhuǎn)換出錯NumberFormatException數(shù)字格式轉(zhuǎn)換異常,如把數(shù)字格式轉(zhuǎn)換異常,如把abcabc轉(zhuǎn)換成轉(zhuǎn)換成數(shù)字數(shù)字 Java Java 程序設計程序設計僅靠程序本身無法恢僅靠程序本身無法恢復的嚴重錯誤復的嚴重錯誤 Exception和和Error類的父類類的父類由由Java應用程序拋出應用程序拋出和處理的非嚴重錯誤和處理的非嚴重錯誤 運行時異常,不要求程運行時異常,不要求程序必須對它

7、們做出處理序必須對它們做出處理 2. 知識準備知識準備 異常分類異常分類 Java Java 程序設計程序設計 2. 知識準備知識準備trycatch try-catch 塊后的代碼段塊后的代碼段public void method()try / 代碼段代碼段(此處不會產(chǎn)生異常此處不會產(chǎn)生異常) catch (異常類型異常類型 ex) / 對異常進行處理的代碼段對異常進行處理的代碼段/ 代碼段代碼段 使用使用try-catch塊捕獲異常,分為三種情況:塊捕獲異常,分為三種情況:第一種情況第一種情況 Java Java 程序設計程序設計 2. 知識準備知識準備trycatch異常類型匹配異常類型

8、匹配 try-catch 塊后的代碼段塊后的代碼段進入進入catch塊塊public void method()try / 代碼段代碼段 1 / 產(chǎn)生異常的代碼段產(chǎn)生異常的代碼段 2 / 代碼段代碼段 3 catch (異常類型異常類型 ex) / 對異常進行處理的代碼段對異常進行處理的代碼段4/ 代碼段代碼段5 使用使用try-catch塊捕獲異常,分為三種情況:塊捕獲異常,分為三種情況:第二種情況第二種情況 產(chǎn)生異常對象產(chǎn)生異常對象 程序繼續(xù)執(zhí)行程序繼續(xù)執(zhí)行異常是一種特殊的對象,類型為異常是一種特殊的對象,類型為java.lang.Exception或其子類或其子類 發(fā)生異常發(fā)生異常 Ja

9、va Java 程序設計程序設計 2. 知識準備知識準備trycatch異常類型不匹配異常類型不匹配 try-catch 塊后的代碼段塊后的代碼段程序中斷運行程序中斷運行 發(fā)生異常發(fā)生異常public void method()try / 代碼段代碼段 1 / 產(chǎn)生異常的代碼段產(chǎn)生異常的代碼段 2 / 代碼段代碼段 3 catch (異常類型異常類型 ex) / 對異常進行處理的代碼段對異常進行處理的代碼段4/ 代碼段代碼段5 使用使用try-catch塊捕獲異常,分為三種情況:塊捕獲異常,分為三種情況:第三種情況第三種情況 產(chǎn)生異常對象產(chǎn)生異常對象 Java Java 程序設計程序設計 2.

10、 知識準備知識準備【例【例3-10】從鍵盤輸入一個】從鍵盤輸入一個double類型的數(shù)字。如果類型的數(shù)字。如果給出的不是給出的不是double類型的會產(chǎn)生異常。類型的會產(chǎn)生異常。try String str = in.nextLine();double doub = Double.parseDouble(str); catch (NumberFormatException ne) System.out.println(異常異常1:);ne.printStackTrace(); catch (Exception e) System.out.println(異常異常2:);e.printStack

11、Trace(); Java Java 程序設計程序設計 2. 知識準備知識準備finally語句語句u不管不管try和和catch語句時候會出現(xiàn)異常,語句時候會出現(xiàn)異常,finally語句都會執(zhí)行。語句都會執(zhí)行。ufinally語句是為異常處理事件提供的一語句是為異常處理事件提供的一個清理機制,一般是用來關(guān)閉文件或個清理機制,一般是用來關(guān)閉文件或釋放其他系統(tǒng)資源。釋放其他系統(tǒng)資源。 Java Java 程序設計程序設計 2. 知識準備知識準備 在在try-catch塊后加入塊后加入finally塊,可以確保無論是否塊,可以確保無論是否發(fā)生異常,發(fā)生異常,finally塊中的代碼總能被執(zhí)行塊中的

12、代碼總能被執(zhí)行try 塊塊 finally 塊塊 catch 塊塊 無異常無異常 有異常有異常 Java Java 程序設計程序設計 2. 知識準備知識準備【例【例3-11】從鍵盤接收一個整數(shù)數(shù)字,不論發(fā)生】從鍵盤接收一個整數(shù)數(shù)字,不論發(fā)生異常與否,都會執(zhí)行異常與否,都會執(zhí)行finally語句。語句。try System.out.print(輸入一個正整數(shù):輸入一個正整數(shù):); Scanner s = new Scanner(System.in); int data = s.nextInt(); catch (Exception e) System.out.println(e); finall

13、y System.out.print(finally 語句塊!語句塊!); Java Java 程序設計程序設計3.1 3.1 解決步驟解決步驟(1) 打開Eclipse,創(chuàng)建一個類(2) 在類main方法中輸入兩個數(shù)相除(3) 給輸入的兩個數(shù)以及兩個數(shù)相除會產(chǎn)生異常,對這段代碼進行異常處理(4) 編寫測試類,運行程序 3. 任務實施任務實施 Java Java 程序設計程序設計3.2 3.2 任務代碼任務代碼 int result=0,1,2;int oper1=0;int oper2=0;Scanner in = new Scanner(System.in);trySystem.out.p

14、rint(請輸入除數(shù)請輸入除數(shù):);oper1 = in.nextInt(); System.out.print(請輸入被除數(shù)請輸入被除數(shù):);oper2 = in.nextInt(); result2=oper2/oper1;System.out.println(計算結(jié)果:計算結(jié)果:+result3); 3. 任務實施任務實施可能出現(xiàn)問題的代碼可能出現(xiàn)問題的代碼 Java Java 程序設計程序設計catch (InputMismatchException iee) System.out.println(異常異常1:輸入不為數(shù)字輸入不為數(shù)字!); catch (ArithmeticExcep

15、tion aee) System.out.println(異常異常2:除數(shù)不能為零除數(shù)不能為零!); catch (ArrayIndexOutOfBoundsException aie) System.out.println(異常異常3:數(shù)組索引越界數(shù)組索引越界!);catch (Exception e) System.out.println(其他異常其他異常4:+e.getMessage();finallySystem.out.println(最后要執(zhí)行的內(nèi)容最后要執(zhí)行的內(nèi)容5!); 3. 任務實施任務實施 Java Java 程序設計程序設計 3. 任務拓展任務拓展 在在catch塊中處理

16、異常塊中處理異常 加入用戶自定義處理信息 調(diào)用異常對象的方法輸出異常信息e.printStackTrace();System.err.println(出現(xiàn)錯誤:被除數(shù)和除數(shù)必須是整數(shù),出現(xiàn)錯誤:被除數(shù)和除數(shù)必須是整數(shù), +除數(shù)不能為零。除數(shù)不能為零。);方法名說 明void printStackTrace()輸出異常的堆棧信息輸出異常的堆棧信息String getMessage()返回異常信息描述字符串,返回異常信息描述字符串,是是printStackTrace()printStackTrace()輸出信息的一部分輸出信息的一部分 Java Java 程序設計程序設計【例例3-12】輸入課程代

17、號輸入課程代號1到數(shù)字到數(shù)字3,得到代號對應的課程。,得到代號對應的課程。System.out.print(請輸入課程代號請輸入課程代號(13之間的數(shù)字之間的數(shù)字):);Scanner in = new Scanner(System.in);try int courseCode = in.nextInt(); catch (Exception ex) System.out.println(輸入不為數(shù)字輸入不為數(shù)字!);ex.printStackTrace(); finally System.out.println(歡迎提出建議歡迎提出建議!); 3. 任務拓展任務拓展 Java Java 程序設計程序設計一、實訓目的一、實訓目的u 掌握掌握Java的異常處理機制;的異常處理機制;u 掌握運用掌握運用try、catch、finally處理異常。處理異常。二、實訓內(nèi)容二、實訓內(nèi)容編寫一個類編寫一個類ExceptionTest,在,在main方法中使用方法中使用try、catch、finally:u 在在try塊中,編寫被塊中,編寫被0除的代碼;除的代碼;u 在在catch塊中,捕獲被塊中,捕獲被0除所產(chǎn)生的異常,并且打印異常信息;除所產(chǎn)生的異常,并且打印異常信息;u 在在finally塊中,打印一條語句。塊中,打印一條語句。三、簡要提示三、簡要提示在產(chǎn)生、捕獲和處理異常

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論