C++ 異常
C++ 異常
執行 C++ 程式碼時,可能會發生不同的錯誤:程式設計師造成的編碼錯誤、輸入錯誤或其他不可預見的情況。
當錯誤發生時,C++ 通常會停止並生成一條錯誤訊息。其技術術語是:C++ 將丟擲 **異常**(丟擲錯誤)。
C++ try 和 catch
C++ 中的異常處理由三個關鍵字組成:try
、throw
和 catch
try
語句允許您定義一個程式碼塊,在執行時對其進行錯誤測試。
throw
關鍵字在檢測到問題時丟擲異常,這使我們能夠建立自定義錯誤。
catch
語句允許您定義一個程式碼塊,在 `try` 塊中發生錯誤時執行。
try
和 catch
關鍵字成對出現
示例
try {
// 嘗試執行的程式碼塊
throw exception; // 當出現問題時丟擲異常
}
catch () {
// 處理錯誤的程式碼塊
}
考慮以下示例
示例
try {
int age = 15;
if (age >= 18) {
cout << "Access granted - you are old enough.";
} else {
throw (age);
}
}
catch (int myNum) {
cout << "Access denied - You must be at least 18 years old.\n";
cout << "Age is: " << myNum;
}
自己動手試一試 »
示例說明
我們使用 try
塊來測試一些程式碼:如果 age
變數小於 18
,我們將 throw
一個異常,並在我們的 catch
塊中處理它。
在 catch
塊中,我們捕獲錯誤並對其進行處理。catch
語句接受一個**引數**:在我們的示例中,我們使用一個 int
變數 (myNum
)(因為我們在 try
塊中丟擲 int
型別的異常 (age
)),以輸出 age
的值。
如果沒有發生錯誤(例如,如果 age
是 20
而不是 15
,這意味著它將大於 18),則 catch
塊將被跳過
您還可以使用 throw
關鍵字輸出一個參考編號,例如用於組織目的的自定義錯誤編號/程式碼(在我們的示例中為 505
)
示例
try {
int age = 15;
if (age >= 18) {
cout << "Access granted - you are old enough.";
} else {
throw 505;
}
}
catch (int myNum) {
cout << "Access denied - You must be at least 18 years old.\n";
cout << "Error number: " << myNum;
}
自己動手試一試 »
處理任何型別的異常 (...)
如果您不知道 try
塊中使用的 throw
**型別**,您可以在 catch
塊中使用“三個點”語法 (...
),它將處理任何型別的異常
示例
try {
int age = 15;
if (age >= 18) {
cout << "Access granted - you are old enough.";
} else {
throw 505;
}
}
catch (...) {
cout << "Access denied - You must be at least 18 years old.\n";
}
自己動手試一試 »