複製鏈接
請複製以下鏈接發送給好友

異常處理機制

鎖定
異常處理(Exception Handling)就是一種解決這一問題的機制,能夠較好地處理程序不能正常運行的情況。 [1] 
中文名
異常處理機制
外文名
exception handling mechanism
定    義
處理程序不能正常運行的情況
異常特點
偶然性,可預見性,嚴重性
系    統
計算機
應用學科
計算機原理

異常處理機制程序操作

程序設計的要求之一就是程序的健壯性。希望程序在運行時能夠不出或者少出問題。但是,在程序的實際運行時,總會有一些因素導致程序不能正常運行。
設計算法時,往往對算法的正常邏輯處理流程設計得比較準確,對異常情況的處理反而不容易設計全面,導致程序在出現異常情況時崩潰。如果軟件出現這種情況會給用户帶來極不友好的體驗。
舉一個簡單的例子,試設計一個程序,運行後提示用户輸入兩個整數。兩個整數用空格隔開,用户輸入後,程序顯示出兩個數字的和。這個程序正常的邏輯處理非常簡單,但普用户輸入的兩個字符串不是整數,程序應該給出提示,否則程序有可能會崩潰。因此針對異常情況的處理也是非常重要的,當然有時這種處理會比較複雜。 [1] 

異常處理機制常見異常

異常(Exception)是程序在運行時可能出現的會導致程序運行終止的錯誤。這種錯誤是不能通過編譯系統檢查出來的。常見的異常如下:
(1)系統資源不足。例如,內存不足,不可以動態申請內存空間;磁盤空間不足,不能打開新的輸出文件等。
(2)用户操作錯誤導致運算關係不正確。例如,出現分母為0。數學運算溢出,數組越界,參數類型不能轉換等。 [1] 

異常處理機制異常特點

異常有以下的一些特點:
(1)偶然性。程序運行中,異常並不總是會發生。
(2)可預見性。異常的存在和出現是可以預見的。
(3)嚴重性。一旦異常發生,程序可能終止,或者運行的結果不可預知。 [1] 

異常處理機制異常例子

C++中,使用trythrowcatch三個關鍵字來實現異常處理。
try後面的複合語句稱為受保護段,受保護段的代碼有可能出現異常,因此在try部分進行異常檢測。如果檢測到異常,就通過throw語句拋擲這個異常。受保護段所調用的函數中也可以檢測和拋擲異常。所拋擲的異常,可以是一個整數、一個字符串、一個變量,甚至是一個類的對象。也就是説,異常是有不同類型的。
catch部分的作用是捕獲異常和處理異常。每個catch後的括弧內,都要指定一個“異常類型”,表明它可以捕獲哪種類型的異常。一旦捕獲到異常,就通過異常處理語句來進行處理。
程序執行的流程有兩種:
(1)沒有異常:try
受保護語句
其他語句。
(2)有異常:try
受保護語句
throw異常
catch
異常處理語句。
在編寫帶有異常處理的程序時,還要注意:
(1)try語句塊和catch語句塊是一個整體,兩者之間不能有其他的語句。
(2)一個try語句塊後面可以有多個catch語句,但是。不可以幾個try語句塊後面用一個catch語句。 [1] 
參考資料
  • 1.    徐雅靜,肖波編著,數據結構與STL習題解析與實驗指導,北京郵電大學出版社,2015.03,7-8