最佳實踐中,c++++ 函數應使用錯誤處理來:引發異常以處理運行時錯誤。返回失敗代碼以表示操作失敗。處理預定義異常以處理異常情況。
C++ 函數中的錯誤處理最佳實踐
在 C++ 中,錯誤處理對于處理運行時錯誤和異常情況至關重要。以下是函數應使用錯誤處理的幾種情況:
1. 當函數可能引發異常時
int divide(int num1, int num2) {
if (num2 == 0) {
throw runtime_error("除數不能為 0"); // 引發異常
}
return num1 / num2;
}
登錄后復制
2. 當函數可能返回失敗代碼時
int openFile(const string& filename) {
ifstream file(filename);
if (!file.is_open()) {
return -1; // 返回失敗代碼
}
return 0;
}
登錄后復制
3. 當函數需要處理預定義異常時
int readFromFile(const string& filename) {
ifstream file(filename);
try {
// 執行涉及文件讀取的操作
...
}
catch (exception& e) {
// 處理文件讀取異常
...
}
}
登錄后復制
實戰案例:
考慮一個讀取文件的函數:
string readFileContents(const string& filename) {
ifstream file(filename);
if (!file.is_open()) {
throw runtime_error("無法打開文件");
}
stringstream ss;
ss << file.rdbuf();
return ss.str();
}
登錄后復制
此函數使用錯誤處理來處理以下情況:
文件無法打開時拋出異常
確保處理文件讀取異常,例如磁盤空間不足或權限問題






