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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

任務三:除法計算器程序設計單元三:數據與異常處理程序設計教學目標知識目標理解異常的概念和用途掌握使用try-catch-finally語句結構能力目標能夠使用try-catch-finally語句進行異常處理教學內容4任務陳述123知識準備任務實施任務拓展任務實訓5任務描述:編寫一個除法計算器,程序要求在出現除數為零和除數、被除數中有一個不是數字的情況時進行相應的處理。當調用存放在數組中的計算結果,數組有可能產生索引越界,對這種情況進行捕捉和處理。1.任務陳述2.知識準備正常情況下,小王每日開車去上班,耗時大約30分鐘但是,異常情況遲早要發(fā)生!一路暢通堵車!撞車!生活中的異常2.知識準備異常就是在程序的運行過程中所發(fā)生的不正常的事件,它會中斷正在運行的程序繞行或者等待請求交警解決異常!面對異常該怎么辦呢?通常情況下,我們會這樣處理:程序運行程序中斷運行堵車!撞車!生活中,我們會根據不同的異常進行相應的處理,而不會就此中斷我們的生活2.知識準備Java編程語言使用異常處理機制為程序提供了錯誤處理的能力程序中預先想好了對付異常的處理辦法異常!程序運行處理完畢,程序繼續(xù)運行對異常進行處理什么是異常處理2.知識準備Java的異常處理是通過5個關鍵字來實現的:try、catch、finally、throw、throws

捕獲異常catchtryfinally執(zhí)行可能產生異常的代碼捕獲異常無論是否發(fā)生異常,代碼總能執(zhí)行手動拋出異常拋出異常throw聲明異常聲明方法可能要拋出的各種異常throwsJava中如何進行異常處理2.知識準備方法名說明Exception異常層次結構的根類ArithmeticException算術錯誤情形,如以零作除數ArrayIndexOutOfBoundsException數組下標越界NullPointerException嘗試訪問null對象成員ClassNotFoundException不能加載所需的類InputMismatchException欲得到數據類型與實際輸入類型不匹配IllegalArgumentException方法接收到非法參數ClassCastException對象強制類型轉換出錯NumberFormatException數字格式轉換異常,如把"abc"轉換成數字僅靠程序本身無法恢復的嚴重錯誤

Exception和Error類的父類由Java應用程序拋出和處理的非嚴重錯誤

運行時異常,不要求程序必須對它們做出處理

2.知識準備異常分類2.知識準備trycatchtry-catch塊后的代碼段publicvoidmethod(){try{//代碼段(此處不會產生異常)}catch(異常類型ex){

//對異常進行處理的代碼段}//代碼段}使用try-catch塊捕獲異常,分為三種情況:第一種情況2.知識準備trycatch異常類型匹配try-catch塊后的代碼段進入catch塊publicvoidmethod(){try{//代碼段1

//產生異常的代碼段2

//代碼段3}catch(異常類型ex){

//對異常進行處理的代碼段4}//代碼段5}使用try-catch塊捕獲異常,分為三種情況:第二種情況產生異常對象程序繼續(xù)執(zhí)行異常是一種特殊的對象,類型為java.lang.Exception或其子類

發(fā)生異常2.知識準備trycatch異常類型不匹配try-catch塊后的代碼段程序中斷運行

發(fā)生異常publicvoidmethod(){try{//代碼段1

//產生異常的代碼段2

//代碼段3}catch(異常類型ex){

//對異常進行處理的代碼段4}//代碼段5}使用try-catch塊捕獲異常,分為三種情況:第三種情況產生異常對象2.知識準備【例3-10】從鍵盤輸入一個double類型的數字。如果給出的不是double類型的會產生異常。

try{ Stringstr=in.nextLine(); doubledoub=Double.parseDouble(str); }catch(NumberFormatExceptionne){ System.out.println("異常1:"); ne.printStackTrace(); }

catch(Exceptione){ System.out.println("異常2:"); e.printStackTrace();}2.知識準備finally語句不管try和catch語句時候會出現異常,finally語句都會執(zhí)行。finally語句是為異常處理事件提供的一個清理機制,一般是用來關閉文件或釋放其他系統(tǒng)資源。2.知識準備在try-catch塊后加入finally塊,可以確保無論是否發(fā)生異常,finally塊中的代碼總能被執(zhí)行try塊finally塊catch塊無異常有異常2.知識準備【例3-11】從鍵盤接收一個整數數字,不論發(fā)生異常與否,都會執(zhí)行finally語句。try{System.out.print("輸入一個正整數:");Scanners=newScanner(System.in);intdata=s.nextInt();}

catch(Exceptione){System.out.println(e);}finally{System.out.print("finally語句塊!");}3.1解決步驟(1)打開Eclipse,創(chuàng)建一個類(2)在類main方法中輸入兩個數相除(3)給輸入的兩個數以及兩個數相除會產生異常,對這段代碼進行異常處理(4)編寫測試類,運行程序3.任務實施3.2任務代碼

intresult[]={0,1,2}; intoper1=0; intoper2=0; Scannerin=newScanner(System.in); try{ System.out.print("請輸入除數:"); oper1=in.nextInt(); System.out.print("請輸入被除數:"); oper2=in.nextInt(); result[2]=oper2/oper1; System.out.println("計算結果:"+result[3]);}3.任務實施可能出現問題的代碼catch(InputMismatchExceptioniee){ System.out.println("異常1:輸入不為數字!");}catch(ArithmeticExceptionaee){ System.out.println("異常2:除數不能為零!");}catch(ArrayIndexOutOfBoundsExceptionaie){ System.out.println("異常3:數組索引越界!");}catch(Exceptione){System.out.println("其他異常4:"+e.getMessage());}finally{System.out.println("最后要執(zhí)行的內容5!");}3.任務實施

3.任務拓展在catch塊中處理異常加入用戶自定義處理信息調用異常對象的方法輸出異常信息e.printStackTrace();System.err.println("出現錯誤:被除數和除數必須是整數, "+ "除數不能為零。");方法名說明voidprintStackTrace()輸出異常的堆棧信息StringgetMessage()返回異常信息描述字符串,是printStackTrace()輸出信息的一部分【例3-12】輸入課程代號1到數字3,得到代號對應的課程。 System.out.print("請輸入課程代號(1~3之間的數字):"); Scannerin=newScanner(System.in);

try{intcourseCode=in.nextInt();}catch(Exceptionex){ System.out.println("輸入不為數字!");

ex.printStackTrace(); }finally{System.out.println("歡迎提出建議!");}3.任務拓展一、實訓目的掌握Java的異常處理機制;掌握運用try、catch、finally處理異常。二、實訓內容編寫一個類ExceptionTest,在main方法中使用try、catch、finally:在try塊中,編寫被0除的代碼;在catch塊

溫馨提示

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

最新文檔

評論

0/150

提交評論