




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Java程序設計實用教程(第3版)第第5章章 異常處理異常處理 5.1 異常處理基礎異常處理基礎 5.2 異常處理措施異常處理措施 Java程序設計實用教程(第3版)5.1 異常處理基礎異常處理基礎1.異常處理機制的必要性異常處理機制的必要性2.錯誤和異常錯誤和異常Java程序設計實用教程(第3版)異常處理機制的必要性異常處理機制的必要性1.面向過程語言錯誤處理方式的缺陷面向過程語言錯誤處理方式的缺陷不進行范圍檢查不進行范圍檢查 采用采用if語句進行事先判斷以防止出現錯誤。語句進行事先判斷以防止出現錯誤。 2.面向對象語言異常處理的思想面向對象語言異常處理的思想將程序正常代碼與錯誤處理代碼分開
2、。將程序正常代碼與錯誤處理代碼分開。使程序具有處理錯誤的能力。使程序具有處理錯誤的能力。 Java程序設計實用教程(第3版)3. Java語言是安全的語言是安全的Java語言提供嚴密的語法規則。語言提供嚴密的語法規則。Java在編譯和運行時嚴格檢查錯誤。在編譯和運行時嚴格檢查錯誤。 Java提供異常處理機制。提供異常處理機制。Java提供內存自動管理方式。提供內存自動管理方式。 Java程序設計實用教程(第3版)錯誤和異常錯誤和異常1.錯誤(錯誤(error)指程序運行時遇到的硬件或)指程序運行時遇到的硬件或操作系統的錯誤。操作系統的錯誤。 Error錯誤類錯誤類2.異常(異常(excepti
3、on)指在硬件和操作系統正)指在硬件和操作系統正常時,程序遇到的運行錯。常時,程序遇到的運行錯。 Exception異異常類常類Java程序設計實用教程(第3版)異常類說明異常類說明public class Throwable implements Serializable public Throwable() public Throwable(String message) public String getMessage() /獲得異常信息獲得異常信息 public String toString() /獲得異常對象的描述信息獲得異常對象的描述信息 public void printSta
4、ckTrace() /顯示異常棧跟蹤信息顯示異常棧跟蹤信息public class Exception extends Throwable public Exception() public Exception(String s)Java程序設計實用教程(第3版)3. RuntimeException運行異常類運行異常類1.算術異常算術異常ArithmeticException:除數為:除數為0 2.空對象異常空對象異常NullPointerExceptionint a = null;a0 = 1; /對空數組中的元素進行操作對空數組中的元素進行操作String str = null;str.
5、length() /調用空對象的方法調用空對象的方法3.類型強制轉換異常類型強制轉換異常ClassCastExceptionObject obj = new Object();String str = (String) obj;Java程序設計實用教程(第3版)3. RuntimeException運行異常類運行異常類負數組長度異常負數組長度異常NegativeArraySizeExceptionint a = new int -1;數組下標越界異常數組下標越界異常ArrayIndexOutOfBoundsExceptionint a = new int1;a1 = 1;字符串序號越界異常字符
6、串序號越界異常StringIndexOutOfBoundsException abc.charAt(-1) 數值格式異常數值格式異常NumberFormatExceptionint j = Integer.parseInt(abc); Java程序設計實用教程(第3版)4. 程序對錯誤與異常的三種處理程序對錯誤與異常的三種處理方式方式1.程序不能處理錯誤程序不能處理錯誤2.程序應避免而不捕獲的異常,如除數為程序應避免而不捕獲的異常,如除數為0、數組下標越界等。、數組下標越界等。3.必須捕獲的異常必須捕獲的異常Java程序設計實用教程(第3版)5.2 異常處理措施異常處理措施 1.異常處理語句異
7、常處理語句2.拋出異常拋出異常3.自定義異常類自定義異常類Java程序設計實用教程(第3版)異常處理語句異常處理語句1.異常處理語句語法異常處理語句語法try 語句語句1 /存在潛在異常的代碼存在潛在異常的代碼catch (異常類異常類 異常對象異常對象) 語句語句2 /捕獲到異常并進行處理的代碼捕獲到異常并進行處理的代碼finally 語句語句3 /最后必須執行的代碼,無論是否捕獲到異常最后必須執行的代碼,無論是否捕獲到異常Java程序設計實用教程(第3版)調用調用parseInt()方法的異常處理語句方法的異常處理語句 String str = 123a;try int i = Integ
8、er.parseInt(str); /調用聲明拋出異常的方法調用聲明拋出異常的方法catch(NumberFormatException e) /捕獲捕獲parseInt()方法聲明的異常對象方法聲明的異常對象字符串不能轉換為整數字符串不能轉換為整數);catch (Exception e) /捕獲所有異常對象捕獲所有異常對象 e.printStackTrace(); /顯示異常棧跟蹤信息顯示異常棧跟蹤信息Java程序設計實用教程(第3版)2. try語句執行流程語句執行流程 Java程序設計實用教程(第3版)【例例5.1】 求數組元素的平均值。求數組元素的平均值。1.average()方法中
9、采用方法中采用if語句對可能出語句對可能出現的運行時錯誤進行事先處理,避免除現的運行時錯誤進行事先處理,避免除數為數為0的運行錯誤的運行錯誤2.tointArray()方法采用異常處理語句對方法采用異常處理語句對產生的運行時錯誤進行事后處理產生的運行時錯誤進行事后處理3.采用命令行參數作為輸入值采用命令行參數作為輸入值Java程序設計實用教程(第3版)拋出異常拋出異常1.拋出自定義異常對象的拋出自定義異常對象的throw語句語句throw 異常對象異常對象public void set(int year, int month, int day) if (month12) throw new E
10、xception(月份錯誤月份錯誤);Java程序設計實用教程(第3版)2. 方法聲明拋出異常的方法聲明拋出異常的throws子句子句修飾符修飾符 返回值類型返回值類型 方法方法(參數列表參數列表) throws 異常類異常類public static int parseInt(String s) throws NumberFormatException日期類聲明拋出異常的方法與方法調用者處理異常。日期類聲明拋出異常的方法與方法調用者處理異常。public void set(int year, int month, int day) throws Exception public MyDate
11、(int year, int month, int day) throws Exception this.set(year, month, day); public static void main(String args) throws ExceptionJava程序設計實用教程(第3版)自定義異常類自定義異常類catch(Exception e) if (e.toString().equals(月份錯誤月份錯誤)【例例5.2】 日期類的異常處理。日期類的異常處理。Java程序設計實用教程(第3版)實驗實驗5 異常的拋出、捕獲并處理異常的拋出、捕獲并處理 n目的:目的:理解異常處理機制。理解異常處理機制。要求:要求:發現各種程序錯誤,采取不同的發現各種程序錯誤,采取不同的手段排除錯誤。手段排除錯誤。重點:重點:掌握掌握try語句語句捕獲異常并處理。捕獲異
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 寫老師的題目及答案
- 小學最難簡便題目及答案
- 電工基本常識培訓課件
- 擠出成型培訓課件
- 培訓出庫流程課件
- 2024年延安市特崗教師招聘考試真題
- 2024年山東服裝職業學院輔導員考試真題
- 2024年杭州市余杭區衛生健康系統普通高校擇優招聘考試真題
- 2024年安康恒口示范區特崗教師招聘筆試真題
- 防水施工工藝優化-洞察及研究
- 保育師操作考試題及答案
- 精準教學的數據驅動模式
- 學校公務外出管理制度
- 天津市部分區2025年九年級下學期中考二模數學試卷(含詳解)
- 2024年重慶開州區中醫院招聘筆試真題
- 高中生物競賽課件第一章 組成細胞的分子基礎課時1
- 2024 - 2025學年人教版三年級下冊美術期末考試試卷及參考答案
- DB13-T2828-2018-馬鈴薯抗旱性鑒定技術規程-河北省
- 礦泉水配送合同協議
- 電腦維護合同協議模板
- 浙江省溫州市2023-2024學年高一下學期期末考試語文試卷(含答案)
評論
0/150
提交評論