




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Java異常處理異異常常處處理理1、異常的概念、異常的概念2、標準異常類、標準異常類3、異常處理機制、異常處理機制4、自定義異常、自定義異常2程序錯誤分類l程序中的錯誤可分為三類:(1)編譯錯誤(2)邏輯錯誤(3)運行時錯誤3異常的定義l異常是程序執行期間發生的各種意外或錯誤。例如: 用戶輸入出錯 所需文件找不到 運行時磁盤空間不夠 內存不夠 算術運算錯 (數的溢出,被零除) 數組下標越界 4異常的分類lJava程序運行過程中,會產生的異常有如下三種類型:(1)JAVA虛擬機由于某些內部錯誤產生的異常。(2)標準異常類,由java系統預先定義好的。(3)用戶程序自定義的異常類。Java異常處理
2、異異常常處處理理1、異常的概念、異常的概念2、標準異常類、標準異常類3、異常處理機制、異常處理機制4、自定義異常、自定義異常6Java中標準異常類的層次結構l Java中所有的異常都是用類表示的,每個異常類都代表了一種運行錯誤。l Java定義了許多標準異常類,它們都是系統類庫中的ExceptionException類類的子類,它們分布在java.lang、java.io、java.util和包中,各個異常類采用繼承的方式進行組織。l 異常類的層次結構圖如下圖所示:7Java中標準異常類的層次結構Throwable類類Error類類ExceptionException類類 RuntimeExc
3、eption類類ArithmeticException類類IndexOutofBoundException類類ArrayIndexOutofBoundsException類類IoException類類FileNotFoundException類類EOFException類類在在Java.lang包包在在Java.io包包8Throwable類l 該類屬于Java.lang包,是所有異常類的父類在Throwable類中定義了描述異常發生的位置和所有異常類共同需要的內容9Throwable類的構造方法 以null作為錯誤信息串內容創建Throwable對象,同時調用該對象的另一方法fillInSt
4、ackTrace記錄異常發生的位置。 以message的內容作為錯誤信息串創建Throwable對象,同時調用該對象的另一方法fillInStackTrace。 public Throwable() public Throwable() public Throwable(String message) public Throwable(String message)10Throwable類的主要成員方法 返回異常描述。 public String getMessage() public String getMessage() public String toString() public St
5、ring toString() 返回異常對象詳細信息。11Throwable類的主要成員方法 打印異常發生的路徑,即引起異常的方法調 用嵌套序列。 public void printStackTrace() public void printStackTrace() public Trowable fillInStackTrace() public Trowable fillInStackTrace() 將當前異常對象的發生位置 (類、方法和所在文件的行號) 記錄到跟蹤棧對象中。12Error類 Error類是Throwable類的子類,由系統保留,用戶不能使用。lError類描述系統錯誤:如
6、將字節碼裝入內存的過程中和對字節碼進行檢查的過程中遇到的問題、java的內部錯誤、資源耗盡等情況。l這類異常由java直接處理,用戶程序不要理會這類異常。13 Exception類是Throwable類的子類,用戶程序中可以直接使用Exception類處理Exception類型的異常。 Exception類不僅繼承了Throwable類的方法,同時還定義了以下兩個構造方法: Exception類(1 1)public Exception()public Exception()(2 2)public Exception(String s)public Exception(String s)Jav
7、a異常處理異異常常處處理理1、異常的概念、異常的概念2、標準異常類、標準異常類3、異常處理機制、異常處理機制4、自定義異常、自定義異常15異常處理機制lJava對異常的處理涉及兩方面的內容:(1)拋出異常(throw)(2)捕捉異常(catch)16拋出異常 JAVA程序拋出異常有兩種方式:(1)由系統自動拋出異常 (2)人為異常拋出。有兩種方式: 在方法頭方法頭寫出需要拋出的異常(利用throws 語句) 在方法體內方法體內拋出異常(利用throw語句)17throws語句格式 throws語句格式為: 修飾符修飾符 返回值類型返回值類型 方法名(方法名( 形參表形參表 )throws th
8、rows 異常類名異常類名1 1,異常類名,異常類名2 2, 例如: public void troubleSome() throws IOException18throws語句舉例class Throws_Exp public static void main(String args) throws ArithmeticException,ArrayIndexOutOfBoundsException int a=4,b=0,c=1,2,3,4,5; System.out.println(a/b); System.out.println(ca+1); System.out.println(“e
9、nd”); 19throw語句格式 如果需要在方法內方法內某個位置拋出異常,可以使用throw語句,通常將throw語句和if語句配合使用。 格式:(1) throw 異常類對象名;(2) throw (new 異常類名();20throw語句舉例(1)class Throw_Exp1 public static void main(String args) ArithmeticException e=new ArithmeticException(); int a=4,b=0; System.out.println(“Before ArithmeticException”); if(b=0)
10、 throw e; System.out.println(a/b); 21class Throw_Exp2 public static void main(String args) int a=5,c=1,2,3,4,5; System.out.println(“Before throw ArrayIndexOutOfBoundsException”); if(a4) throw (new ArrayIndexOutOfBoundsException(); System.out.println(“After throw ArrayIndexOutOfBoundsException”); thr
11、ow語句舉例(2)22class Throw_Exp3 public static void main(String args) int a=5,b=0,c=1,2,3,4,5; System.out.println(“Before throw”); if(b=0) throw (new ArithmeticException (); System.out.println(a/b); if(a4) throw (new ArrayIndexOutOfBoundsException(); System.out.println(a/b); throw語句舉例23捕捉異常 要由程序自己捕捉和處理異常
12、,需要建立try- catch-finally語句塊。24try /在此區域內或能發生異常; catch(異常類1 e1) /處理異常1; catch(異常類n en) /處理異常n; finally /不論異常是否發生,都要執行的部分; 被監視的塊該catch子句能夠捕捉和處理的異常類型try - catch語句塊格式25try-catch-finally結構說明(1)將可能發生異常的程序代碼放置在try程序塊中。如果該塊內的代碼出現了異常,系統將終止try塊代碼的執行,自動跳轉到所發生的異常類對應的catch塊中,執行該塊中的代碼。如果程序運行正常,后面的各catch塊不起任何作用。(2)
13、finally塊是個可選項,無論異常是否發生,finally塊的代碼必定執行。通常把對各種異常共同處理部分放在finally塊中,如輸出統一信息、釋放資源、清理內存、關閉已打開的文件等。(3)一個try塊可以對應多個catch塊,用于對多個異常類進行捕獲。但最多只能選中一個執行。(4)異常對象與catch塊中聲明的實例的匹配原則: 異常對象是catch塊中聲明的異常類的實例; 異常對象是catch塊中聲明的異常類的某一子類的實例;26class Try_Catch_Exp1public static void main(String args) int d=0,a; try System.ou
14、t.println(Before throw Exception); a=5/d; System.out.println(the Exception is throw,The statement ist run); catch(ArithmeticException e) System.out.println(處理算數異常的catch語句塊捕獲了異常!); System.out.println(捕獲的異常為+e); catch(ArrayIndexOutOfBoundsException e) System.out.println(處理數組下標越異常的catch語句塊捕獲了異常!); Syst
15、em.out.println(捕獲的異常為+e); finally System.out.println(這是所有catch塊的共有部分!); System.out.println(try-catch-finally塊后面的語句); try-catch-finally結構例子(1)27class Try_Catch_Exp2 public static void main(String args) int a=5,b=0,c=1,2,3,4,5; try System.out.println(Before throw); if(a4) throw (new ArrayIndexOutOfBou
16、ndsException(); System.out.println (After throw); catch(ArrayIndexOutOfBoundsException e) System.out.println(處理數組下標越異常的catch語句塊捕獲了異常!); System.out.println(捕獲的異常為+e); finally System.out.println(這是所有catch塊的共有部分!); System.out.println(try-catch-finally塊后面的語句); try-catch-finally結構例子(2)Java異常處理異異常常處處理理1、異
17、常的概念、異常的概念2、標準異常類、標準異常類3、異常處理機制、異常處理機制4、自定義異常、自定義異常29自定義異常使用自定義異常的步驟:(1)通過繼承java.lang.Exception 類聲明自定義 異常類。(2)在方法適當的位置生成自定義異常類的實例, 并用throw語句拋出。(3)在方法的聲明部分用throws語句聲明該方法 可能拋出的異常。30自定義異常類格式用戶自定義異常類格式為: 例如: class 自定義異常類名 extends Exception 異常類體; class MyException extends Exception 31自定義異常類說明用戶定義的異常同樣要用try-catch捕獲,但必須由用戶自己拋出異常。 例如:throw new MyException()32自定義異常例子class Exception_exp public static void main(String args) try System.out.println(2+3=+add(2,3); System.out.println(-8+10=+add(-8,10); catch (Exception e) System.out.println(Exception is +e); static int add(int n,int m) throws UserException
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- TD/T 1007-2003耕地后備資源調查與評價技術規程
- JJG(煙草)21-2021煙草實驗室大氣環境
- 2025初三升高一數學暑假銜接講義25講含答案(必修一內容)5.1 任意角和弧度制
- 考研復習-風景園林基礎考研試題【必刷】附答案詳解
- 風景園林基礎考研資料試題及參考答案詳解【完整版】
- 《風景園林招投標與概預算》試題A附參考答案詳解(奪分金卷)
- 2025-2026年高校教師資格證之《高等教育法規》通關題庫含答案詳解(黃金題型)
- 2024年山東華興機械集團有限責任公司人員招聘筆試備考題庫及答案詳解(基礎+提升)
- 2025年河北省定州市輔警招聘考試試題題庫及1套參考答案詳解
- 12月西安商品房市場月度分析
- 2025年建筑工程土石方回填分包協議范本
- 學生集中配餐管理制度
- 婚紗店合伙合同協議書
- 溫州市光伏發電研究報告-溫州市光伏發電行業市場深度調研與投資前景分析
- 胃癌內科護理常規
- 工程資金共管協議書
- 2025年安全管理員安全培訓考試試題帶答案(培優)
- 廣東省廣州市越秀區2025屆七下生物期末學業水平測試試題含解析
- 2025年建筑制圖試題及答案
- 危險化學品企業“安全領導力”專題培訓指導材料(雷澤佳編制-2025A1)
- 浙江省臺金七校聯盟2024-2025學年高一下學期5月期中聯考地理試題(原卷版+解析版)
評論
0/150
提交評論