1. 什么是例外
- 例外(Exception) :指程式運行中出現的各種狀況 如檔案找不到,網路連接失敗,非法引數等
- 例外發生在程式運行期間,影響了正常的程式執行流程
簡單分類
-
檢查性例外
最具代表的是用戶錯誤問題引起的例外,是我們無法預見的,編譯時不能被忽略;
-
運行時例外:可以在編譯時被忽略
-
錯誤ERRoR:不是例外,脫離控制,編譯也檢查不到的
2. 例外體系結構
-
Java定義了一個基類java.lang.Throwable 作為所有例外的超類
-
分為兩大類:錯誤Error和例外Exception

-
Error和Exception的區別:
- Error通常是災難性的致命的錯誤,是程式無法控制的,當出現這些例外時,Java虛擬機(JVM)一般會終止執行緒;
- Exception 通常情況下是可以被程式處理的,應盡可能的去處理這些例外
3. java 例外處理機制
-
拋出例外
-
捕獲例外
-
例外處理的五個關鍵字
-
try , catch ,finally ,throw,throws
-
try ...catch ... finally 捕獲多個例外,從小到大
try{//監控區域 }catch(Exception e){ //catch(想要捕獲的例外型別)捕獲例外 System.out.print("例外,除數不能為0"); }finally{//最后一定會輸出 處理善后 可選,用于資源的關閉 System.out.print("finally"); }-
throw 手動拋出例外物件
class Number{ int num; public void step(){ if(num<0){ throw new RuntimeException("資料錯誤!"); } } } -
throws
-
”throws +例外型別“ 在方法宣告處,指明方法執行時,可能會拋出的例外型別
-
此方式只是將例外拋給了方法的呼叫者,并未真正處理掉例外
class Person{ public void resgit() throws Exception{ System.out.print("輸出"); } }
-
-
-
-
4.自定義例外類
- 繼承現有的例外結構:RuntimeException 、Exception
- 提供全域常量 :serialVersionUID
- 提供多載的構造器
5.經驗總結
-
處理運行時例外時,采用邏輯合理規避同時輔助使用try-catch 處理
-
在多個catch塊后面,可以加一個catch(Exception)來處理可能會被遺漏的例外
-
盡量去處理例外,而不是簡單的呼叫printStackTrace去列印輸出
-
對于資源讀寫,添加finally陳述句塊去釋放資源
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/272137.html
標籤:其他
上一篇:類成員變數的初始化
