版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、基本異常的使用學(xué)習(xí)目標(biāo)知識目標(biāo)掌握J(rèn)ava異常處理機(jī)制01能力目標(biāo)掌握try、catch、finally的使用02Java中如何進(jìn)行異常處理Java的異常處理是通過5個關(guān)鍵字來實現(xiàn)的:try、catch、 finally、throw、throws 捕獲異常 catchtryfinally執(zhí)行可能產(chǎn)生 異常的代碼 捕獲異常 無論是否發(fā)生異常,代碼總能執(zhí)行手動拋出異常 拋出異常 throw聲明異常 聲明方法可能要拋出的各種異常 throwstry/catch塊7-1使用try/catch塊捕獲異常,分為三種情況:trycatch try/catch 塊后的代碼段public void method
2、()try / 代碼段(此處不會產(chǎn)生異常) catch (異常類型 ex) / 對異常進(jìn)行處理的代碼段/ 代碼段第一種情況 try/catch塊7-2public class StudentException public static void main(String args) System.out.print(請輸入課程代號(1至3之間的數(shù)字):);Scanner in = new Scanner(System.in);try int courseCode = in.nextInt();switch (courseCode) case 1: System.out.println(“網(wǎng)頁編
3、程); break;case 2: System.out.println(Java編程); break;case 3: System.out.println(“Oracle基礎(chǔ)); catch (Exception ex) System.out.println(輸入不為數(shù)字!);System.out.println(歡迎提出建議!);輸入:2Java編程歡迎提出建議!控制臺輸出try/catch塊7-3使用try/catch塊捕獲異常,分為三種情況:trycatch異常類型匹配 try/catch 塊后的代碼段進(jìn)入catch塊public void method()try / 代碼段 1 /
4、產(chǎn)生異常的代碼段 2 / 代碼段 3 catch (異常類型 ex) / 對異常進(jìn)行處理的代碼段4/ 代碼段5第二種情況 產(chǎn)生異常對象 程序繼續(xù)執(zhí)行異常是一種特殊的對象,類型為java.lang.Exception或其子類 發(fā)生異常try/catch塊7-4public class StudentException public static void main(String args) System.out.print(請輸入課程代號(1至3之間的數(shù)字):);Scanner in = new Scanner(System.in);try int courseCode = in.nextInt
5、();switch (courseCode) case 1: System.out.println(“網(wǎng)頁編程); break;case 2: System.out.println(Java編程); break;case 3: System.out.println(“Oracle基礎(chǔ)); catch (Exception ex) System.out.println(輸入不為數(shù)字!);System.out.println(歡迎提出建議!);輸入:B輸入不為數(shù)字!歡迎提出建議!控制臺輸出try/catch塊7-5使用try/catch塊捕獲異常,分為三種情況:trycatch異常類型不匹配 tr
6、y/catch 塊后的代碼段程序中斷運行 發(fā)生異常public void method()try / 代碼段 1 / 產(chǎn)生異常的代碼段 2 / 代碼段 3 catch (異常類型 ex) / 對異常進(jìn)行處理的代碼段4/ 代碼段5第三種情況 產(chǎn)生異常對象 try/catch塊7-6public class StudentException public static void main(String args) System.out.print(請輸入課程代號(1至3之間的數(shù)字):);Scanner in = new Scanner(System.in);try int courseCode =
7、 in.nextInt();switch (courseCode) case 1: System.out.println(“網(wǎng)頁編程); break;case 2: System.out.println(Java編程); break;case 3: System.out.println(“Oracle基礎(chǔ)); catch (NullPointerException ex) System.out.println(輸入不為數(shù)字!);System.out.println(歡迎提出建議!);輸入:B程序中斷運行try/catch塊7-7異常對象的printStackTrace方法的堆棧跟蹤功能顯示出程
8、序運行到當(dāng)前類的執(zhí)行流程 public class StudentException public static void main(String args) System.out.print(請輸入課程代號(1至3之間的數(shù)字):); Scanner in = new Scanner(System.in); try int courseCode = in.nextInt(); /此處代碼省略 catch (Exception ex) System.out.println(輸入不為數(shù)字!); ex.printStackTrace(); System.out.println(歡迎提出建議!); j
9、ava.util.InputMismatchExceptionat java.util.Scanner.throwFor(Scanner.java:840)at java.util.Scanner.next(Scanner.java:1461)at java.util.Scanner.nextInt(Scanner.java:2091)at java.util.Scanner.nextInt(Scanner.java:2050)at s2jsp.sg.ch05.AccpException.main(AccpException.java:23)異常類型異常堆棧信息在此方法中拋出了異常try/ca
10、tch/finally 2-1在try/catch塊后加入finally塊,可以確保無論是否發(fā)生異常,finally塊中的代碼總能被執(zhí)行try 塊 finally 塊 catch 塊 無異常 有異常 try/catch/finally 2-2public class StudentException public static void main(String args) System.out.print(請輸入課程代號(1至3之間的數(shù)字):);Scanner in = new Scanner(System.in);try int courseCode = in.nextInt();switc
11、h (courseCode) case 1: System.out.println(“網(wǎng)頁編程); break;case 2: System.out.println(Java編程); break;case 3: System.out.println(“Oracle基礎(chǔ)); catch (Exception ex) System.out.println(輸入不為數(shù)字!); finally System.out.println(歡迎提出建議!);控制臺輸出輸入:B輸入不為數(shù)字!歡迎提出建議!多重catch塊 2-1一段代碼可能會引發(fā)多種類型的異常當(dāng)引發(fā)異常時會按順序查看 catch 語句,并執(zhí)行第
12、一個與異常類型匹配的catch塊執(zhí)行其中的一條 catch 語句之后,其后的 catch 語句將被忽略 public void method()try / 代碼段 / 產(chǎn)生異常(異常類型2) catch (異常類型1 ex) / 對異常進(jìn)行處理的代碼段 catch (異常類型2 ex) / 對異常進(jìn)行處理的代碼段 catch (異常類型3 ex) / 對異常進(jìn)行處理的代碼段/ 代碼段try 與異常類型1不匹配try/catch 塊后的代碼段發(fā)生異常產(chǎn)生異常對象catch與異常類型2匹配catchcatch程序繼續(xù)執(zhí)行進(jìn)入catch塊多重catch塊 2-2public class Studen
13、tException public static void main(String args) Scanner in = new Scanner(System.in);trySystem.out.print(“請輸入S1的總學(xué)時:);int totalTime = in.nextInt(); /總學(xué)時System.out.print(“請輸入S1的課程數(shù)目:);int totalCourse = in.nextInt(); /課程數(shù)目System.out.println(“S1各課程的平均學(xué)時為: + totalTime / totalCourse); catch (InputMismatchException e1) System.out.println(輸入不為數(shù)字!); catch (ArithmeticException e2) System.out.println(課程數(shù)目不能為零!); catch (Exception e) System.out.println(發(fā)生錯誤:+e.getMessage();輸入:270 H 在安排catch語句的順序時,首先應(yīng)該捕獲最特殊的異常, 然后再逐漸一般化,即先子類后父類 輸出:輸入不為數(shù)字!進(jìn)入第一個catch塊輸入:
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年技術(shù)咨詢合同:新能源項目技術(shù)咨詢
- 2024年房產(chǎn)預(yù)售合同樣本
- 2024年房屋交易合同規(guī)范文本
- 2024-2030年苦蕎明目降壓枕公司技術(shù)改造及擴(kuò)產(chǎn)項目可行性研究報告
- 2024-2030年纏繞式裝盒機(jī)行業(yè)市場現(xiàn)狀供需分析及重點企業(yè)投資評估規(guī)劃分析研究報告
- 2024年教育技術(shù)與軟件開發(fā)合同
- 2024-2030年新版中國生物氣項目可行性研究報告
- 2024-2030年新版中國液化氣卡盤項目可行性研究報告
- 2024年攝影服務(wù)合同標(biāo)的及服務(wù)項目
- 2024-2030年全球市場巴西堅果油市場營銷策略及銷售渠道策略報告
- 【工商企業(yè)管理專業(yè)實操實訓(xùn)報告2600字(論文)】
- HJ 636-2012 水質(zhì) 總氮的測定 堿性過硫酸鉀消解紫外分光光度法
- 主播薪資核算方案
- 機(jī)電儀運維中心巡檢工作提升方案
- 10以內(nèi)口算題每頁50道
- 大學(xué)生職業(yè)生涯規(guī)劃與就業(yè)指導(dǎo)(高校學(xué)生學(xué)習(xí)職業(yè)生涯規(guī)劃與就業(yè)指導(dǎo)課程)全套教學(xué)課件
- 《道德與法治》三年級學(xué)情分析
- 校園禁煙承諾書(12篇)
- 國家開放大學(xué)《計算機(jī)網(wǎng)絡(luò)》課程實驗報告實驗六-計算機(jī)網(wǎng)絡(luò)綜合性實-
- 學(xué)校教育統(tǒng)計工作計劃方案
- 售后服務(wù)方案及運維方案
評論
0/150
提交評論