C C 異常捕捉和處理

2021-10-10 11:47:49 字數 2089 閱讀 3170

在閱讀別人開發的專案中,也許你會經常看到了多處使用異常的**,也許你也很少遇見使用異常處理的**。那在什麼時候該使用異常,又在什麼時候不該使用異常呢?在學習完異常基本概念和語法之後,後面會有講解。

//1.丟擲異常

throw 異常物件

//2.異常捕捉

trycatch

(異常物件)

class

data};

void

fun(

int n)

if(n>3)

}int

main()

catch

(int i)

catch

(const

char

*ptr)

catch

(data &d)

catch(.

..)//抓取 前面異常以外的所有其他異常

return0;

}

#include

using

namespace std;

intmain()

catch

(exception &e)

return0;

}

輸出結果:

當使用new進行開空間時,申請記憶體失敗,系統就會丟擲異常,不用使用者自定義異常型別,此時捕獲到異常時,就可告訴使用者是**的錯誤,便於修改。

//宣告這個函式不能再拋異常

protected

: string exstr;};

void

fun()}

intmain()

catch

(exception &e)

cout<<

"end"

<

return0;

}當檔案不存在時,輸出結果:

如果在linux上執行,上述**需要根據環境修改:

98標準寫法

~

fileexception()

throw()

//必須要

virtual

const

char

*what()

const

throw()

//宣告這個函式不能再拋異常

//編譯

g++ main.cpp

2011標準寫法

~

fileexception()

noexcept

//必須要

virtual

const

char

*what()

const

noexcept

//宣告這個函式不能再拋異常

//編譯

g++ main.cpp -std=c++

11 指定用c++

11標準編譯

1. 使用異常處理的優點:2. 使用異常的缺點:3. 什麼時候使用異常?4. 程式所有的異常都可以catch到嗎?

捕捉異常 python入門系列 異常處理

捕捉異常,然後再處理 try 可能出現異常的 有異常就會丟擲,不會再執行剩下的 try後面的 except error as 出現異常後,而且 捉到的 except可以寫多個,用來捕捉多個不同的異常else 異常未 捉到所執行的 可以省略 finally 不管有沒有異常都會執行的 異常的合併解決 t...

python異常捕捉處理機制

python中捕捉異常常用句式try except try 語句按照如下方式工作 乙個 try 語句可能包含多個except子句,分別來處理不同的特定的異常。最多只有乙個分支會被執行。處理程式將只針對對應的 try 子句中的異常進行處理,而不是其他的 try 的處理程式中的異常。乙個except子句...

丟擲和捕捉多個異常

12.5.3 丟擲和捕捉多個異常 有時候乙個方法會丟擲多種異常來指示不同型別的問題。如果這些都是受檢異常,必須都列在方法的throws子句中,它們之間以逗號分開。比如 public void process throws eofexception,filenotfoundexception 異常處理...