版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基本異常的使用學習目標知識目標掌握Java異常處理機制01能力目標掌握try、catch、finally的使用02Java中如何進行異常處理Java的異常處理是通過5個關鍵字來實現的:try、catch、 finally、throw、throws 捕獲異常 catchtryfinally執(zhí)行可能產生 異常的代碼 捕獲異常 無論是否發(fā)生異常,代碼總能執(zhí)行手動拋出異常 拋出異常 throw聲明異常 聲明方法可能要拋出的各種異常 throwstry/catch塊7-1使用try/catch塊捕獲異常,分為三種情況:trycatch try/catch 塊后的代碼段public void method
2、()try / 代碼段(此處不會產生異常) catch (異常類型 ex) / 對異常進行處理的代碼段/ 代碼段第一種情況 try/catch塊7-2public class StudentException public static void main(String args) System.out.print(請輸入課程代號(1至3之間的數字):);Scanner in = new Scanner(System.in);try int courseCode = in.nextInt();switch (courseCode) case 1: System.out.println(“網頁編
3、程); break;case 2: System.out.println(Java編程); break;case 3: System.out.println(“Oracle基礎); catch (Exception ex) System.out.println(輸入不為數字!);System.out.println(歡迎提出建議!);輸入:2Java編程歡迎提出建議!控制臺輸出try/catch塊7-3使用try/catch塊捕獲異常,分為三種情況:trycatch異常類型匹配 try/catch 塊后的代碼段進入catch塊public void method()try / 代碼段 1 /
4、產生異常的代碼段 2 / 代碼段 3 catch (異常類型 ex) / 對異常進行處理的代碼段4/ 代碼段5第二種情況 產生異常對象 程序繼續(xù)執(zhí)行異常是一種特殊的對象,類型為java.lang.Exception或其子類 發(fā)生異常try/catch塊7-4public class StudentException public static void main(String args) System.out.print(請輸入課程代號(1至3之間的數字):);Scanner in = new Scanner(System.in);try int courseCode = in.nextInt
5、();switch (courseCode) case 1: System.out.println(“網頁編程); break;case 2: System.out.println(Java編程); break;case 3: System.out.println(“Oracle基礎); catch (Exception ex) System.out.println(輸入不為數字!);System.out.println(歡迎提出建議!);輸入:B輸入不為數字!歡迎提出建議!控制臺輸出try/catch塊7-5使用try/catch塊捕獲異常,分為三種情況:trycatch異常類型不匹配 tr
6、y/catch 塊后的代碼段程序中斷運行 發(fā)生異常public void method()try / 代碼段 1 / 產生異常的代碼段 2 / 代碼段 3 catch (異常類型 ex) / 對異常進行處理的代碼段4/ 代碼段5第三種情況 產生異常對象 try/catch塊7-6public class StudentException public static void main(String args) System.out.print(請輸入課程代號(1至3之間的數字):);Scanner in = new Scanner(System.in);try int courseCode =
7、 in.nextInt();switch (courseCode) case 1: System.out.println(“網頁編程); break;case 2: System.out.println(Java編程); break;case 3: System.out.println(“Oracle基礎); catch (NullPointerException ex) System.out.println(輸入不為數字!);System.out.println(歡迎提出建議!);輸入:B程序中斷運行try/catch塊7-7異常對象的printStackTrace方法的堆棧跟蹤功能顯示出程
8、序運行到當前類的執(zhí)行流程 public class StudentException public static void main(String args) System.out.print(請輸入課程代號(1至3之間的數字):); Scanner in = new Scanner(System.in); try int courseCode = in.nextInt(); /此處代碼省略 catch (Exception ex) System.out.println(輸入不為數字!); 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之間的數字):);Scanner in = new Scanner(System.in);try int courseCode = in.nextInt();switc
11、h (courseCode) case 1: System.out.println(“網頁編程); break;case 2: System.out.println(Java編程); break;case 3: System.out.println(“Oracle基礎); catch (Exception ex) System.out.println(輸入不為數字!); finally System.out.println(歡迎提出建議!);控制臺輸出輸入:B輸入不為數字!歡迎提出建議!多重catch塊 2-1一段代碼可能會引發(fā)多種類型的異常當引發(fā)異常時會按順序查看 catch 語句,并執(zhí)行第
12、一個與異常類型匹配的catch塊執(zhí)行其中的一條 catch 語句之后,其后的 catch 語句將被忽略 public void method()try / 代碼段 / 產生異常(異常類型2) catch (異常類型1 ex) / 對異常進行處理的代碼段 catch (異常類型2 ex) / 對異常進行處理的代碼段 catch (異常類型3 ex) / 對異常進行處理的代碼段/ 代碼段try 與異常類型1不匹配try/catch 塊后的代碼段發(fā)生異常產生異常對象catch與異常類型2匹配catchcatch程序繼續(xù)執(zhí)行進入catch塊多重catch塊 2-2public class Studen
13、tException public static void main(String args) Scanner in = new Scanner(System.in);trySystem.out.print(“請輸入S1的總學時:);int totalTime = in.nextInt(); /總學時System.out.print(“請輸入S1的課程數目:);int totalCourse = in.nextInt(); /課程數目System.out.println(“S1各課程的平均學時為: + totalTime / totalCourse); catch (InputMismatchException e1) System.out.println(輸入不為數字!); catch (ArithmeticException e2) System.out.println(課程數目不能為零!); catch (Exception e) System.out.println(發(fā)生錯誤:+e.getMessage();輸入:270 H 在安排catch語句的順序時,首先應該捕獲最特殊的異常, 然后再逐漸一般化,即先子類后父類 輸出:輸入不為數字!進入第一個catch塊輸入:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版國有土地臨時用地合同3篇
- 二零二五版高級別別墅居住權購置與買賣合同3篇
- 醫(yī)院2025年度物流配送服務合同2篇
- 二零二五年度交通樞紐“四害”滅治與旅客健康服務合同3篇
- 二零二五版數字藝術版權保護與侵權處理合同范本3篇
- 二零二五版宅基地使用權轉讓及農村土地流轉收益分配合同2篇
- 二零二五年戶外廣告牌場地租賃及新媒體營銷合同3篇
- 二零二五年投影機采購與燈光音響租賃服務合同3篇
- 二零二五版建筑工程項目招投標代理中介費合同3篇
- 二零二五版汽車零部件鈑金加工及機加服務采購合同模板3篇
- 退學費和解協(xié)議書模板
- 2024至2030年中國對氯甲苯行業(yè)市場全景調研及發(fā)展趨勢分析報告
- 智能教育輔助系統(tǒng)運營服務合同
- 心功能分級及護理
- DLT 572-2021 電力變壓器運行規(guī)程
- 重慶育才中學2025屆化學九上期末教學質量檢測試題含解析
- 成都市2022級(2025屆)高中畢業(yè)班摸底測試(零診)數學試卷(含答案)
- 【云南省中藥材出口現狀、問題及對策11000字(論文)】
- 服裝板房管理制度
- 河北省興隆縣盛嘉恒信礦業(yè)有限公司李杖子硅石礦礦山地質環(huán)境保護與治理恢復方案
- 第七章力與運動第八章壓強第九章浮力綜合檢測題(一)-2023-2024學年滬科版物理八年級下學期
評論
0/150
提交評論