版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
講師:XXX時間:
年
月目錄CONTENTWS01.項目開發(fā)環(huán)境搭建02.學(xué)生成績管理03.學(xué)生基本信息管理04.不同類別學(xué)生信息管理05.學(xué)生基本信息查找與計算目錄CONTENTWS06.使用集合實現(xiàn)學(xué)生信息管理07.學(xué)生信息管理系統(tǒng)異常處理08.使用文件實現(xiàn)學(xué)生信息存儲09.使用JDBC實現(xiàn)學(xué)生信息管理10.圖書管理系統(tǒng)設(shè)計與實現(xiàn)項目
七
學(xué)生信息管理系統(tǒng)異常處理項目7學(xué)生信息管理系統(tǒng)異常處理任務(wù)一異常處理基礎(chǔ)任務(wù)二
異常處理方法知識目標(biāo)了解異常的概念和分類,以及異常處理機(jī)制、異常處理的基本原則。掌握捕獲異常的方法,包括使用
try-catch
語句、多重
catch
語句、嵌套
try-catch語句和try-catch-finally語句。掌握拋出異常的方法,包括使用throw語句和throws語句。掌握自定義異常的方法。能力目標(biāo)能夠分析系統(tǒng)異常,正確捕獲并處理異常。能夠根據(jù)系統(tǒng)需求自定義異常。素養(yǎng)目標(biāo)培養(yǎng)嚴(yán)謹(jǐn)?shù)倪壿嬎季S,以及系統(tǒng)解決問題的能力。培養(yǎng)面對問題時冷靜分析、及時修正的職業(yè)素養(yǎng)。點擊跳過情境掃碼觀看“學(xué)生信息管理系統(tǒng)異常處理”視頻,討論并回答下列問題問題1:在學(xué)生信息管理系統(tǒng)中,可能出現(xiàn)哪些異常?問題2:如何使用
Java
對學(xué)生信息管理系統(tǒng)進(jìn)行異常處理?掃碼學(xué)習(xí)學(xué)生信息管理系統(tǒng)異常處理任務(wù)一異常處理基礎(chǔ)1.異常的概念錯誤程序錯誤由系統(tǒng)內(nèi)部問題引發(fā),如資源耗盡或邏輯崩潰,系統(tǒng)將終止進(jìn)程并記錄日志,不納入本項目處理范疇。。異常程序異常源于外部環(huán)境異?;蛴脩粽`操作,通過結(jié)構(gòu)化異常處理可有效攔截并修復(fù),保障系統(tǒng)持續(xù)穩(wěn)定運行。2.異常的分類異常分類
異常分為編譯時異常和運行時異常。編譯時異常需強(qiáng)制處理,否則編譯失??;運行時異常可選處理,不影響編譯過程。異常處理機(jī)制Java通過Exception類實現(xiàn)異常管理,所有異常均為Exception子類,支持統(tǒng)一處理與擴(kuò)展機(jī)制。常見異常類的層次結(jié)構(gòu)其中,RuntimeException
類以外的類屬于編譯時異常類,RuntimeException
類及其子類屬于運行時異常類。異常類型異常類說
明編譯時異常ClassNotFoundException找不到類異常IOExceptionI/O操作異常FileNotFoundException找不到文件異常SQLException數(shù)據(jù)庫操作異常運行時異常ArithmeticException算術(shù)異常,如被零除IndexOutOfBoundsException索引越界異常ArrayIndexOutOfBoundsException數(shù)組索引越界異常IllegalArgumentException方法接收非法參數(shù)異常NullPointerException非法使用空引用異常NumberFormatException數(shù)字格式化異常NoSuchElementException訪問元素不存在異常InputMismatchException輸入數(shù)據(jù)類型不匹配異常常見異常類及說明Java
遵循Java
遵循高內(nèi)聚、低耦合的設(shè)計原則,一般將通用異常類放在
java.lang
基礎(chǔ)包中,而將與具體功能相關(guān)的異常類放在相應(yīng)的包中,避免基礎(chǔ)包過于龐大。例如,將IOException
類及其大多數(shù)子類放在
java.io
包中,將
SQLException
類及其大多數(shù)子類放在java.sql包中。(4)(3)(2)(1)printStackTrace(PrintStreams)printStackTrace()toString()getMessage()返回異常的詳細(xì)信息。如果該異常沒有詳細(xì)信息,則返回null。返回異常的簡短描述。將異常的跟蹤信息輸出到標(biāo)準(zhǔn)錯誤流。將異常的跟蹤信息輸出到指定輸出流。獲取異常信息的方法1.異常處理機(jī)制程序健壯性異常處理Java的異常處理機(jī)制確保程序運行中能自動執(zhí)行異常處理代碼,提升程序穩(wěn)定性。
通過有效管理運行時異常,Java程序能夠避免意外崩潰,增強(qiáng)其健壯性和可靠性。異常拋出
程序運行中遇異常,自動生成異常對象,系統(tǒng)或用戶主動觸發(fā),傳遞異常詳情。異常捕獲Java系統(tǒng)接收異常,搜索匹配處理方法,精準(zhǔn)交付異常對象,執(zhí)行異常管理流程。2.異常處理基本原則僅用于處理非正常情況。(1)優(yōu)先捕獲具體異常。(3)保持異常的原子性。(5)只捕獲可處理的異常。(2)避免忽略捕獲的異常。(4)最小化異常處理單元。(6)學(xué)生信息管理系統(tǒng)最常見的異輸入異常種類數(shù)據(jù)格式異常
輸入的學(xué)生信息不符合系統(tǒng)要求,如姓名和學(xué)號包含非法字符、郵箱格式錯誤、聯(lián)系方式長度有誤等。(1)數(shù)據(jù)類型異常輸入數(shù)據(jù)的類型與系統(tǒng)定義的類型不匹配,如年齡和成績?yōu)榉菙?shù)值類型等。(2)數(shù)據(jù)范圍異常輸入的數(shù)據(jù)超出合理范圍,如成績小于
0
分或大于
100
分、年齡為負(fù)數(shù)等。(3)數(shù)據(jù)缺失異常缺失某些必要的學(xué)生信息,如姓名、學(xué)號和班級為空等。(4)此外,學(xué)生信息管理系統(tǒng)還可能出現(xiàn)數(shù)據(jù)庫操作異常和文件操作異常等。異常處理基礎(chǔ)異常概述異常處理概述任務(wù)二異常處理方法1.try-catch語句在Java中,try-catch語句是最基礎(chǔ)的捕獲異常語句try{//可能出現(xiàn)異常的語句塊}catch(異常類型
異常對象名){ //捕獲異常//處理異常的語句塊}語法格式(1)
try
子句用于指定捕獲異常的范圍,即可能出現(xiàn)異常的語句塊,該語句塊在運行過程中可能生成一個或多個異常對象。(2)
catch
子句用于捕獲并處理
try
子句中生成的異常對象,其中的異常類型必須是Exception
類或其子類,用于指定能夠捕獲的異常類型,異常對象名通常用于獲取異常的相關(guān)信息。try-catch
語句的執(zhí)行過程是:執(zhí)行
try
子句中的語句塊,如果出現(xiàn)異常,且異常類型與
catch
子句指定的異常類型匹配,則執(zhí)行
catch
子句捕獲并處理該異常,當(dāng)異常類型不匹配時終止程序,并在控制臺輸出異常信息;如果
try
子句中的語句塊沒有出現(xiàn)異常,則跳過catch子句,繼續(xù)執(zhí)行try-catch語句后面的語句。需要注意的是,異常處理完成后,程序會繼續(xù)執(zhí)行
try-catch
語句后面的語句,除非在catch子句中顯式終止程序?!具\行結(jié)果】實例:7-1
使用try-catch語句捕獲并處理被零除異常【參考代碼】/*ExceptionTest.java*/packageproject7.example7_1;publicclassExceptionTest{……(詳見教材)
2.多重catch語句多重catch語句語法格式try{//可能出現(xiàn)異常的語句塊}catch(異常類型1異常對象名1){ //捕獲異常//處理異常的語句塊1}catch(異常類型2異常對象名2){ //捕獲異常//處理異常的語句塊2}……catch(異常類型n異常對象名n){ //捕獲異常//處理異常的語句塊n}多重
catch
語句的執(zhí)行過程是:執(zhí)行
try
子句中的語句塊,如果出現(xiàn)異常,依次將異常類型與每個
catch
子句的異常類型匹配,并執(zhí)行第一個匹配成功的
catch
子句,同時跳過后面的catch子句,繼續(xù)執(zhí)行try-catch語句后面的語句。需要注意的是,當(dāng)使用多個catch子句時,子句中的異常類型必須是先子類后父類,否則會報錯?!締栴}分析】實例:7-2
使用多重catch語句捕獲并處理被零除和數(shù)組索引越界異常
在
try
子句中進(jìn)行除零運算,為數(shù)組元素賦值,然后在第一個
catch子句中捕獲
ArithmeticException
異常并輸出異常信息,在第二個
catch
子句中捕獲ArrayIndexOutOfBoundsException異常并輸出異常信息?!具\行結(jié)果】【參考代碼】/*CatchExceptionTest.java*/packageproject7.example7_2;importjava.util.Scanner;……(詳見教材)
3.嵌套try-catch語句嵌套try-catch語句語法格式try{ //外層try子句//可能出現(xiàn)異常的語句塊1try{ //內(nèi)層try子句//可能出現(xiàn)異常的語句塊2}catch(異常類型2異常對象名2){ //捕獲內(nèi)層異常//處理異常的語句塊2}}catch(異常類型1異常對象名1){ //捕獲外層異常//處理異常的語句塊1}如果內(nèi)層
try
子句中出現(xiàn)的異常沒有被內(nèi)層
catch
子句捕獲,異常就會被傳遞到外層catch子句中進(jìn)行異常類型匹配。實例:7-3
使用嵌套try-catch語句捕獲并處理被零除和數(shù)組索引越界異?!締栴}分析】
在內(nèi)層
try-catch
語句中捕獲被零除異常,在外層
try-catch
語句中捕獲數(shù)組索引越界異常。【運行結(jié)果】【參考代碼】/*NestedExceptionTest.java*/packageproject7.example7_3;publicclassNestedExceptionTest{……(詳見教材)
4.try-catch-finally語句
在
Java
中,try-catch-finally
語句中的
finally
子句是異常處理的統(tǒng)一出口。無論程序是否出現(xiàn)異常,finally
子句中的語句塊最終都會執(zhí)行,因此
finally
子句常用于釋放資源、關(guān)閉連接等。try-catch-finally語句語法格式try{//可能出現(xiàn)異常的語句塊}catch(異常類型
異常對象名){ //捕獲異常//處理異常的語句塊}……finally{//無論是否出現(xiàn)異常都會執(zhí)行的語句塊}【運行結(jié)果】實例:7-4
使用try-catch-finally語句【參考代碼】/*FinallyExceptionTest.java*/packageproject7.example7_4;publicclassFinallyExceptionTest{……(詳見教材)
1.throw語句語法格式thrownew異常類型([異常信息]);
其中,new
表示創(chuàng)建一個異常類對象;異常類型必須是
Exception
類或其子類;異常信息表示需要輸出的信息。【運行結(jié)果】實例:7-5
使用throw語句拋出異?!緟⒖即a】/*ThrowTest.java*/packageproject7.example7_5;publicclassThrowTest{……(詳見教材)
Exception異常
在不確定異常類型時,可以拋出并捕獲Exception異常。2.throws語句
如果不希望在方法中對可能出現(xiàn)的異常進(jìn)行處理,則可以使用
throws
語句聲明方法可能拋出的異常,然后將異常傳遞給調(diào)用該方法的代碼進(jìn)行處理。throws語句聲明拋出的異常的語法格式[修飾符]返回值類型
方法名([形參列表])throws異常類型列表{//方法體}
其中,異常類型列表可以是一種或多種異常類型,多種異常類型之間使用英文逗號隔開。通常情況下,如果一個方法聲明了拋出的異常,在調(diào)用該方法時需要使用
try-catch語句捕獲并處理異常類型列表中的所有異常?!具\行結(jié)果】實例:7-6
使用throws語句聲明拋出的異常【參考代碼】/*ThrowsTest.java*/packageproject7.example7_6;importjava.util.InputMismatchException;……(詳見教材)
自定義異常定義
當(dāng)內(nèi)置異常無法滿足需求時,開發(fā)者需創(chuàng)建繼承Exception的子類,通過重寫構(gòu)造方法實現(xiàn)特定異常類型。異常處理場景適用于參數(shù)校驗失敗場景,如年齡數(shù)值非法或手機(jī)號位數(shù)不符,通過拋出明確異常標(biāo)識業(yè)務(wù)邏輯錯誤。自定義異常通過自定義異常類來實現(xiàn)。自定義的異常類通常繼承
Exception
類或其子類。語法格式[修飾符]返回值類型
方法名([形參列表])t
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年鄭州市頸肩腰腿痛醫(yī)院工作人員招聘12人的備考題庫及完整答案詳解一套
- 2025年河南省水利水電學(xué)校公開招聘工作人員6人備考題庫及一套參考答案詳解
- 3D打印血管網(wǎng)絡(luò)技術(shù)的臨床應(yīng)用與推廣策略
- 同仁堂集團(tuán)2026屆高校畢業(yè)生招聘備考題庫及答案詳解參考
- 城市熱島效應(yīng)對城市居民生活品質(zhì)的影響與對策教學(xué)研究課題報告
- 3D打印導(dǎo)板在神經(jīng)外科手術(shù)中的精準(zhǔn)設(shè)計與精準(zhǔn)固定
- 3D打印導(dǎo)板對神經(jīng)外科手術(shù)切口的美容效果
- 2025年文元育英中學(xué)招聘6人備考題庫及1套參考答案詳解
- 2025年鄭州大學(xué)第二附屬醫(yī)院公開招聘員額制工作人員(碩士)23人備考題庫及1套參考答案詳解
- 2025年周口市第二人民醫(yī)院(周口市老年醫(yī)院)專業(yè)技術(shù)人員招聘備考題庫及一套完整答案詳解
- 職業(yè)學(xué)院工會評優(yōu)評先實施辦法
- 中華人民共和國史期末復(fù)習(xí)
- 加油站安全現(xiàn)狀評價匯報
- 信陽師范大學(xué)《倫理學(xué)》2021-2022學(xué)年第一學(xué)期期末試卷
- 小學(xué)2024年秋季學(xué)生1530安全教育記錄表(全學(xué)期)
- 五年級上冊英語專項-語法專練-譯林版
- 中國普通食物營養(yǎng)成分表(修正版)
- 生物樣本庫的建設(shè)
- 低壓線路的安裝、運行及維護(hù)
- 表-柴油的理化性質(zhì)及危險特性
- 四年級道德與法治復(fù)習(xí)教案
評論
0/150
提交評論