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