參考原文:https://blog.csdn.net/java_cxrs/article/details/91661623
著作權宣告:本文為CSDN博主「不善^」的原創文章,遵循CC 4.0 BY-SA著作權協議,轉載請附上原文出處鏈接及本宣告,
原文鏈接:https://blog.csdn.net/java_cxrs/java/article/details/91661623
大概也學了有段時間的 java,對于例外的概念還是很模糊,還只是停留在該拋的拋,該捕獲的捕獲的這個知識層面上,
刷到了例外的題目,自己想不明白,所以還是來基本的了解下例外
例題1:
public class Test{ void readCard(int cardNo) throws Exception { System.out.println("Reading Card"); } void checkCard(int cardNo) throws RuntimeException { // line n1 System.out.println("Checking Card"); } public static void main(String[] args) { Test ex = new Test(); int cardNo = 12344; ex.checkCard(cardNo); //line n2 ex.readCard(cardNo); //line n3 } } //例外處理 結果是什么? A. Reading Card Checking Card B. 編譯僅在 line n1 處失敗, C. 編譯僅在 line n2 處失敗, D. 編譯僅在 line n3 處失敗, E. 編譯在 line n2 和 line n3 處均失敗,
答案為什么是D呢???? 下面初步理解后就會知道了,

Error : 是程式中無法處理的錯誤,表示運行時出現了嚴重的錯誤 比如代碼編譯問題,語法問題這些虛擬機無法處理的問題,就會報Error錯誤翻譯過來就是虛擬機發生了一個致命的錯誤,如下
Exception in thread "main" java.lang.Error: Unresolved compilation problems: ex cannot be resolved to a type Syntax error on token "d", = expected after this token at com.oracle.test2.dome06.main(dome06.java:17)
Exception:程式本身可以捕獲并且可以處理的例外, 一般分為Checked例外和Runtime例外,所有RuntimeException類及其子類的實體被稱為Runtime例外,不屬于該范疇的例外則被稱為CheckedException,
運行時例外(不受檢例外):RuntimeException類極其子類表示JVM在運行期間可能出現的錯誤,編譯器不會檢查此類例外,并且不要求處理例外,比如用空值物件的參考(NullPointerException)、陣列下標越界(ArrayIndexOutBoundException),此類例外屬于不可查例外,一般是由程式邏輯錯誤引起的,在程式中可以選擇捕獲處理,也可以不處理,
非運行時例外(受檢例外):Exception中除RuntimeException極其子類之外的例外,編譯器會檢查此類例外,如果程式中出現此類例外,比如說IOException,必須對該例外進行處理,要么使用try-catch捕獲,要么使用throws陳述句拋出,否則編譯不通過,
處理例外的關鍵詞:
拋出例外:throw,throws
捕獲例外:try,catch,finally
拋出例外throw
throw用在方法內,用來拋出一個例外物件,將這個例外物件傳遞到呼叫者處,并結 束當前方法的執行,
throw 使用格式:

try.....catch使用:
try { } catch (Exception e) { // TODO: handle exception }finally { }
例題中:代碼 ex.readCard(cardNo); 呼叫以下方法,方法執行了Exception拋例外
void readCard(int cardNo) throws Exception {
System.out.println("Reading Card");
}
所以 根據 非運行時例外(受檢例外) 的規定:
![]()
必須拋例外或補例外否則編譯不通過.,
小知識點:
1 當例外沒有被檢測出來 捕獲或者拋出時, 它才可以重新拋出;
2 Error是虛擬機無法處理的例外,不可恢復;
3 例外均可恢復 error除外;
個人學習,內容簡略,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/164038.html
標籤:Java
