Java程序設(shè)計-項目驅(qū)動式教程07學(xué)生信息管理系統(tǒng)異常處理_第1頁
Java程序設(shè)計-項目驅(qū)動式教程07學(xué)生信息管理系統(tǒng)異常處理_第2頁
Java程序設(shè)計-項目驅(qū)動式教程07學(xué)生信息管理系統(tǒng)異常處理_第3頁
Java程序設(shè)計-項目驅(qū)動式教程07學(xué)生信息管理系統(tǒng)異常處理_第4頁
Java程序設(shè)計-項目驅(qū)動式教程07學(xué)生信息管理系統(tǒng)異常處理_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論