關於異常處理的一些知識點

2021-10-05 22:27:07 字數 972 閱讀 2916

概念

異常是在程式中導致程式中斷執行的一種指令流。

異常處理格式

trycatch(異常型別1 物件名1)catch(異常型別2 物件名2) …

finally

注:關於finally作為異常處理的統一出口,是因為無論是否發生異常,finally必然執行,所以作為異 常統一處理出口

異常的處理流程

產生異常後,系統會自動產生乙個異常類的例項化物件,若異常發生在try語句,則會根據異常型別找到對應的catch語句處理。如找不到則丟擲異常。

異常的體系結構

父類:throwable(可能的丟擲)

子類:error,錯誤,是jvm發出的錯誤操作,只能避免,無法處理

子類:exception:一般表示所有程式中的異常,程式中將進行try…catch的處理。

出現異常是丟擲還是自己處理

若是因為外部原因導致出現異常,則丟擲。若是內部的問題,則在內部自己處理。

兩個關鍵字

throws:主要在方法的宣告上使用,表示方法中不處理異常,而交給呼叫處處理。

throw:表示在程式中人為的丟擲乙個異常,實際上丟擲的就是乙個異常類的例項化物件。

自定義異常

編寫乙個類, 繼承exception,並重寫一參構造方法 即可完成自定義受檢異常型別。編寫乙個類, 繼承runtimeexcepion,並重寫一參構造方法 即可完成自定義執行時異常型別。

常見面試題

問:try-catch-finally 中哪個部分可以省略?

答:catch和finally可以省略其中乙個 , catch和finally不能同時省略 。 格式上允許省略catch塊, 但是發生異常時就不會捕獲異常了。

問:try-catch-finally 中,如果 catch 中 return 了,finally 還會執行嗎?

答:會執行,先計算返回值, 並將返回值儲存起來, 等待返回;執行finally**塊 ; 將之前儲存的返回值, 返回出去;

關於演算法的一些知識點

set 不能用來計數,只能用來判斷是否存在這個string。include setstr 新增數值 str.insert str new set 預設是從小到大排序 兩個int插入用法,按照第乙個數值排序。set s 訪問第乙個值 s.begin 如果是雙int int start,end star...

關於集合的一些知識點

集合 集合,它也是一種陣列,它稱為 動態陣列 特點 宣告集合的時候,不需要指定集合的大小,當空間不夠時,會自動變大 arraylist可以存在重複資料 它儲存的資料是有順序的 採用的佇列的結構進行儲存 先進先出,後進後出 建立語法 arraylistlist new arraylist 這是一種泛型...

一些知識點

字串拼接 1.a join b a為元素之間的分隔符,b為待分割的序列 可用於輸出時的資料處理,元素間有空格,末尾沒有 2 s s s str1,str2,str3 前半部分為字串,後半部分為索引。用於引入,s是物件 3.format str1,str2,str3 與f 括號裡為已有變數 關於for...