在 C 中,例外情況會透過 try-catch 語句處理:try 區塊中程式碼可能會拋出例外。 catch 區塊捕捉標準異常或自訂異常。 noexcept 關鍵字聲明函數不會拋出異常,以進行最佳化。
C 函數中如何處理例外狀況?
在C 中,異常透過try-catch
語句處理,包含三個主要部分:
try { // 代码块,可能抛出异常 } catch (const std::exception& e) { // 捕获标准异常 } catch (const MyCustomException& e) { // 捕获自定义异常 }
實戰案例:
假設我們有一個函數divide
,它計算兩個數的商,但當分母為0 時拋出例外:
int divide(int num, int denom) { try { if (denom == 0) { throw std::runtime_error("除数不能为 0"); } return num / denom; } catch (const std::exception& e) { std::cout << "错误: " << e.what() << std::endl; } }
在主函數中,我們可以呼叫divide
函數並捕獲異常:
int main() { try { int dividend = 10; int divisor = 0; int result = divide(dividend, divisor); std::cout << dividend << " / " << divisor << " = " << result << std::endl; } catch (const std::runtime_error& e) { std::cout << e.what() << std::endl; } }
輸出:
错误: 除数不能为 0
注意:
std::exception
。 noexcept
關鍵字宣告函數不會拋出例外,以進行最佳化。 以上是C++ 函式中如何處理異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!