版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
《JAVA程序設(shè)計》課程1、JAVA語言異常的概念和異常的類型;
匯報提綱2、JAVA語言異常處理機制;3、JAVA語言異常拋出。Java程序設(shè)計《JAVA程序設(shè)計》課程學(xué)習(xí)目標1、掌握異常的定義和異常的類型;2、掌握JAVA語言中異常的類層次結(jié)構(gòu);3、熟悉JAVA語言中的異常處理機制;4、了解自定義異常類的定義和適用;5、能對程序中可能出現(xiàn)的異常進行處理?!禞AVA程序設(shè)計》課程
6.1異常概述6.1.1項目(6-1)描述根據(jù)提示輸入整數(shù)被除數(shù)和除數(shù),計算并輸出商,如果正確請輸出“感謝使用本程序!”;如果被除數(shù)輸入的不是整數(shù),請輸出“輸入的被除數(shù)不是整數(shù),程序退出!”,程序退出;如果除數(shù)輸入的不是整數(shù),請輸出“輸入的除數(shù)不是整數(shù),程序退出!”,程序退出;如果除數(shù)輸入的是0,請輸出“除數(shù)不能為0,程序退出!”,程序退出。6.1.1項目知識準備(1)生活中的異常在生活中,異常情況隨時都有可能發(fā)生。上下班異常:在正常情況下,你每天開車去上班,需要30分鐘。但是由于上班高峰期,異常情況可能會發(fā)生,比如嚴重的堵車、事故等,這種情況下,你往往很晚才能到達單位。這種異常雖然偶爾發(fā)生,但是真的發(fā)生也是件很麻煩的事情。做飯異常:周末在家守著燉湯,正常情況下,2個小時后可以喝湯。但是由于微信群里不斷在發(fā)紅包,一直想著搶紅包的事情,忘了調(diào)到小火,大家可想到這樣的異常所帶來的結(jié)果?!禞AVA程序設(shè)計》課程6.1異常概述提醒:生活中有很多異常,同學(xué)們可否舉例說出自己所碰到的異常情況。異常:exception(2)程序中的異常我們先查看案例6-1的程序代碼:教材word版\第六章\新建MicrosoftWord文檔.docx正常情況下,用戶會按照系統(tǒng)的提示輸入,運行效果如圖6.1所示。圖6.1案例6-1正常運行結(jié)果《JAVA程序設(shè)計》課程
6.1異常概述
如果用戶被除數(shù)輸入以下內(nèi)容,運行效果如圖6.2所示。圖6.2案例6-1被除數(shù)非整數(shù)情況下的運行結(jié)果如果用戶除數(shù)輸入0,運行效果如圖6.3所示。圖6.3案例6-1除數(shù)為0的運行結(jié)果《JAVA程序設(shè)計》課程
6.1異常概述在本程序中,要求被除數(shù)和除數(shù)為整數(shù),而且JAVA語言規(guī)定除數(shù)不能為0,如果違反這些規(guī)則,程序會非正常的結(jié)束,即產(chǎn)生異常。從異常開始的后面語句將不執(zhí)行。(3)異常的概念案例6-1展示了程序中的異常,那么什么是異常。異常是在程序運行過程中所發(fā)生的反常事件,中斷正在運行的程序。表現(xiàn)有多種形式,如內(nèi)存用完,資源分配錯誤,找不到文件,網(wǎng)絡(luò)連接錯誤,算術(shù)運算錯誤(如數(shù)的溢出、被零整除),數(shù)組下標越界,類型轉(zhuǎn)換異常等。6.1.3項目實施(1)通過分析題目可以得出以下信息:①根據(jù)提示輸入被除數(shù)和除數(shù);②目標是在正常輸入的情況下,輸出相應(yīng)的內(nèi)容;在不正常的輸入情況下,也要輸出相應(yīng)的內(nèi)容。③需要對輸入的內(nèi)容進行判斷。思考:請同學(xué)們思考如何來處理這些異常,如何避免這樣的異常?《JAVA程序設(shè)計》課程
6.1異常概述
(2)編碼:在案例6-1的基礎(chǔ)上及以上分析,可以編寫項目6-1程序:教材word版\第六章\新建MicrosoftWord文檔.docx(3)調(diào)試運行,顯示結(jié)果該程序的部分運行結(jié)果如圖6.4所示:圖6.4項目6-1除數(shù)為0的運行結(jié)果思考:通過if-else語句進行異常處理,有什么缺點?《JAVA程序設(shè)計》課程
6.1異常概述6.1.4能力拓展1.請寫出項目6-1代碼的注釋語句。2.通過if-else語句進行異常處理,有什么缺點?《JAVA程序設(shè)計》課程
6.2異常處理6.2.1項目(6-2)描述請用JAVA的異常處理機制完成項目6-1,但輸入的數(shù)據(jù)即使錯誤,程序也能夠繼續(xù)執(zhí)行,并輸出“感謝使用本程序!”。6.2.2項目知識準備(1)異常處理機制生活的中異常處理,如上班異常案例,如果上班因為異常情況未準時到達,會采取電話告知領(lǐng)導(dǎo)或其他同事處理相應(yīng)的事情,而不至于因為遲到所有的事情無法開展。JAVA提供了一種獨特的處理異常機制,就像我們平時可能會遇到的意外情況,預(yù)先設(shè)計好一些處理辦法。即在程序執(zhí)行代碼中,出現(xiàn)異常,會按照預(yù)定的處理的辦法對異常進行處理,異常處理完后,程序繼續(xù)運行。JAVA語言中異常處理包括聲明異常、拋出異常、捕獲異常和處理異常4個環(huán)節(jié),通過5個關(guān)鍵字try、catch、finally、throw和throws來實現(xiàn)。(2)try-catch把可能出現(xiàn)異常的代碼放入try語句塊,并使用catch語句捕獲異常。catch語句可以有多個,用來匹配多個異常?!禞AVA程序設(shè)計》課程
6.2異常處理格式如下:try{…//可能產(chǎn)生異常的代碼}catch(異常類
e){…//處理異常的代碼}catch(異常類
e){…//處理異常的代碼}如果try語句塊在執(zhí)行過程中碰到異常,try塊中后面的代碼將不被執(zhí)行,系統(tǒng)會自動生成相應(yīng)的異常對象,如果該異常對象與catch中聲明的異常類型相匹配,會把該異常對象賦給catch后面的異常參數(shù),相應(yīng)的catch塊會被執(zhí)行。當(dāng)多個catch塊時,處理不同的異常,排列順序必須是從子類到父類,最后一個一般都是Exception類。安排匹配原則,如果把父類異常放到前面,后面的的catch塊將得不得執(zhí)行。運行時,如果有異常,系統(tǒng)只執(zhí)行其中的一個匹配catch塊。JAVA異常類層次結(jié)構(gòu)如圖6.6所示,詳細的請查閱JDK幫助?!禞AVA程序設(shè)計》課程
6.2異常處理圖6.5Java異常類層次結(jié)構(gòu)圖
6.2異常處理《JAVA程序設(shè)計》課程
JAVA程序錯誤包括Error和Exception兩種類型,其中Error是指錯誤,如動態(tài)鏈接失敗、虛擬機錯誤等,通常Java程序不會處理這類錯誤。Exception才是真正意義上的異常,包括兩種類型:運行時異常和非運行時異常。案例6-2是將案例6-1可能出現(xiàn)異常的代碼放入try語句塊中,并使用catch語句塊捕獲異常。教材word版\第六章\新建MicrosoftWord文檔.docx請同學(xué)們運行該代碼,請執(zhí)行以下三種情況:正常輸入、被除數(shù)輸入A、除數(shù)輸入0,分別查看運行結(jié)果,觀察有什么不同。(3)try-catch-finally可以在try-catch語句塊后加入finally,finally所包含的語句是不管有沒有異常都要執(zhí)行的內(nèi)容。格式如下:try{…//可能產(chǎn)生異常的代碼}catch(異常類
e){…//處理異常的代碼}catch(異常類
e){…//處理異常的代碼}finally{…//上面代碼執(zhí)行完后,必須執(zhí)行的內(nèi)容}《JAVA程序設(shè)計》課程
6.2異常處理該結(jié)構(gòu)中,try是必須的,catch和finally塊為可選,但兩者至少出現(xiàn)其中之一。在案例6-2中,如果不管什么情況都需要執(zhí)行“感謝使用本程序!”,該如何實現(xiàn)呢,請查看案例6-3。教材word版\第六章\新建MicrosoftWord文檔.docx在try和catch中存在return語句,finally塊中語句也會被執(zhí)行,發(fā)生異常執(zhí)行的順序:try塊或catch塊return之前的語句,執(zhí)行finally中語句,執(zhí)行try或catch塊的return語句退出。finally塊中語句不執(zhí)行的唯一情況:在異常處理代碼中執(zhí)行System.exit(1),將退出JAVA虛擬機。(4)throws(聲明異常)JAVA中可以這樣處理異常,在產(chǎn)生異常的方法體中不做處理,而是在調(diào)用此方法的方法體中處理異常,如果需要可以繼續(xù)把異常上傳到更上一層的方法。在方法的聲明中顯式地指明方法執(zhí)行時可能出現(xiàn)的錯誤的形式稱為聲明異常,使用關(guān)鍵字throws,可以同時聲明多個異常,之間由逗號隔開,格式如下:一旦方法聲明了拋出異常,可以采用兩種方法處理:publicvoidtest()throwsIOExceptionpublicvoidtest()throwsIOException,IllegalAccessException《JAVA程序設(shè)計》課程
6.2異常處理調(diào)用者通過try-catch-finally捕獲并處理異常;通過throws繼續(xù)聲明異常,如果調(diào)用者不知道如何處理異常,可以繼續(xù)通過throws聲明異常,讓上一級處理異常。main方法聲明的異常將由JAVA虛擬機來處理。在案例6-3中,將計算商的任務(wù)封裝到divide()方法中,在main()方法中調(diào)用該方法,并對可能產(chǎn)生的異常進行處理,請查看案例6-4。教材word版\第六章\新建MicrosoftWord文檔.docx在案例6-4中,在main方法中不用try-catch,而是繼續(xù)聲明異常,此時由JAVA虛擬機來處理,請查閱案例6-5.教材word版\第六章\新建MicrosoftWord文檔.docx(4)throw(拋出異常)在JAVA的異常處理機制中,程序應(yīng)能夠捕獲異常并進行異常處理,但前提條件是在方法執(zhí)行中能夠?qū)a(chǎn)生的異常拋出。JAVA語言中異常的對象有兩個來源:一是JAVA運行時環(huán)境自動拋出系統(tǒng)產(chǎn)生的異常,這些異常總是要拋出即自動拋出,如除數(shù)為0的異常;二是系統(tǒng)無法自動發(fā)現(xiàn)并解決,即程序員自己拋出的異常,這個異??梢允浅绦騿T自己定義的,也可以是JAVA語言中定義的,如年齡不在正常范圍內(nèi),性別輸入不是“男”或“女”等,此時可以用throw關(guān)鍵字拋出異常,把問題提交給調(diào)用者解決。格式如下:《JAVA程序設(shè)計》課程
6.2異常處理thrownewException()示例請查閱案例6-6。教材word版\第六章\新建MicrosoftWord文檔.docx請調(diào)試程序觀察運行結(jié)果。6.2.3項目實施請參考項目6-3所示。對比throw和throws區(qū)別:作用不同:throw用于程序員自動產(chǎn)生并拋出異常,throws用于聲明在該方法內(nèi)拋出異常;位置不同:throw位于方法體內(nèi)部,可以作為單獨語句使用,throws必須在方法參數(shù)列表的后面不能單獨使用;內(nèi)容不同:throw拋出一個異常對象,而且只能是一個。Throws后面跟異
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年教案新趨勢:海洋化學(xué)資源的科學(xué)教育
- 2024年安全輸液管理系統(tǒng)的創(chuàng)新與應(yīng)用
- 2024版《高等數(shù)學(xué)2》教案設(shè)計:聚焦學(xué)生能力培養(yǎng)
- 高中化學(xué)專題訓(xùn)練 【硫及其化合物】
- 2024年春季歷史文化知識普及活動:探秘故宮
- 2023-2024學(xué)年廣東省揭陽市磐東中學(xué)高二地理適應(yīng)性聯(lián)考試題含解析
- 《認識百分數(shù)》課件制作要點
- 丙烷安全技術(shù)說明書
- 新能源汽車發(fā)展-氫動力時代
- 2024-2025學(xué)年新教材高中地理第2章地表形態(tài)的變化第1節(jié)第2課時外力作用及其對地表形態(tài)的影響地表形態(tài)與人類活動的關(guān)系課后練習(xí)含解析中圖版選擇性必修1
- 司索工安全操作規(guī)程
- 人教版數(shù)學(xué)五年級上冊課本習(xí)題(題目)
- 鋼筋合格證(共6頁)
- BIM技術(shù)全過程工程管理及應(yīng)用策劃方案
- 彎扭構(gòu)件制作工藝方案(共22頁)
- 水利工程填塘固基、堤身加固施工方法
- 中醫(yī)針灸的骨邊穴怎樣定位
- 人教版八年級上冊英語單詞表默寫版(直接打印)
- 電脫水、電脫鹽講解
- 違約損失率(LGD)研究
- 溝槽回填施工方案(完整版)
評論
0/150
提交評論