知識點課件27.基本異常使用_第1頁
知識點課件27.基本異常使用_第2頁
知識點課件27.基本異常使用_第3頁
知識點課件27.基本異常使用_第4頁
知識點課件27.基本異常使用_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

最新文檔

評論

0/150

提交評論