異常處理是 c++++ 中用于處理運行時錯誤的機制。通過 throw 拋出異常,并使用 try、catch 和 finally 代碼塊捕獲和處理異常。具體語法如下:try { // 可能引發(fā)異常的代碼 }catch (const std::exception& e) { // 捕獲并處理異常 }catch(…) { // 捕獲所有異常 }
如何在 C++ 中處理函數(shù)異常
異常處理是 C++ 中處理運行時錯誤的一種機制。使用 throw 關(guān)鍵字拋出異常,并使用 try、catch 和可能選項 finally 代碼塊來捕獲和處理異常。
語法:
try { // 可能引發(fā)異常的代碼 } catch (const std::exception& e) { // 捕獲并處理異常 } catch(...) { // 捕獲所有異常 }
登錄后復(fù)制
實戰(zhàn)案例:
考慮以下函數(shù),該函數(shù)將字符串轉(zhuǎn)換為整數(shù):
int string_to_int(std::string str) { try { int num = std::stoi(str); return num; } catch (const std::invalid_argument& e) { std::cout << "無法將字符串轉(zhuǎn)換為整數(shù)" << std::endl; return -1; } catch (const std::out_of_range& e) { std::cout << "整數(shù)超出范圍" << std::endl; return -1; } }
登錄后復(fù)制
在主函數(shù)中使用該函數(shù):
int main() { std::string input = "123"; int num; try { num = string_to_int(input); std::cout << num << std::endl; } catch (const std::exception& e) { std::cout << "出現(xiàn)異常: " << e.what() << std::endl; } return 0; }
登錄后復(fù)制
優(yōu)點:
提高程序健壯性
允許在特定位置處理特定異常
提供錯誤信息和自定義錯誤處理
防止程序意外終止