有的程式在編譯時看起來是沒有報錯或異常,但是往往有些程式在執行時會出現意想不到的錯誤。這樣有可能會產生意想不到的效果,例如在某個定時任務中(每10分鐘執行一次),需要處理一批excel表中的資料。處理完畢後將關閉該excel**。一旦在需要處理的excel**中的資料格式不符合程式的格式,程式會報錯從而終止執行。經過24 h 後,將會有成百上千的excel在後台被開啟,這樣伺服器的後台會大量被開啟的excel所占用,導致伺服器崩潰甚至宕機。這時新增異常處理機制就必不可少,當程式有異常報錯時立刻關閉後台中由程式開啟的所有檔案。
c++中有一種專門用來處理這種異常的機制。try...catch語句,可以有效的避免這種影響。何為try...catch語句呢?從字面上很好理解,try語句裡面加的就是你需要嘗試著去做的內容,一旦嘗試著行不通之後,會立刻被catch抓住,執行catch裡面的內容。這樣就會防止因為程式出異常而導致開啟的東西關不掉。除此之外c++中還有個throw(丟擲)機制。現在可以來嘗試一下不管怎麼樣,先嘗試著丟擲乙個錯誤:
可見此處關閉檔案並沒有被執行,如果是在伺服器上的定時任務,就會造成大量資源被占用,因此及時關閉開啟的檔案非常重要。所以一般情況下,當catch到異常時就需要執行關閉檔案操作。
除此之外,異常也可分為多種,如邏輯異常,執行異常等。
如果需要知道程式執行中會出現什麼樣的異常,那就需要用到相關的異常處理。例如:
#include #include using namespace std;
const string func(int i)
}int main()
catch(invalid_argument e)
}int main()
catch(invalid_argument e){
cout << e.what() 執行結果:
這就是異常處理給程式帶來的好處與便捷!
c 異常處理機制
c 異常處理機制 c 異常處理機制是乙個用來有效地處理執行錯誤的非常強大且靈活的工具,它提供了更多的彈性 安全性和穩固性,克服了傳統方法所帶來的問題.異常的丟擲和處理主要使用了以下三個關鍵字 try throw catch 丟擲異常即檢測是否產生異常,在c 中,其採用throw語句來實現,如果檢測到...
c 異常處理機制
c 異常處理機制是乙個用來有效地處理執行錯誤的非常強大且靈活的工具,它提供了更多的彈性 安全性和穩固性,克服了傳統方法所帶來的問題.異常的丟擲和處理主要使用了以下三個關鍵字 try throw catch 丟擲異常即檢測是否產生異常,在c 中,其採用throw語句來實現,如果檢測到產生異常,則丟擲異...
C 異常處理機制
c 異常處理機制主要使用try,throw,catch三大關鍵字。try catch語句形式如下 require redcarpet markdown redcarpet.new hello world puts markdown.to htmltry catch exception1 ex 捕獲型...