在C++中,通常使用返回值來表示函數執行過程中的錯誤。常見的做法是使用整型值來表示錯誤碼,然后根據不同的錯誤碼來返回相應的錯誤信息。例如,可以定義一個枚舉類型來表示不同的錯誤碼,然后編寫一個函數來根據錯誤碼返回相應的錯誤信息。
#include <iostream>
enum ErrorCode {
SUCCESS = 0,
INVALID_INPUT = 1,
FILE_NOT_FOUND = 2,
PERMISSION_DENIED = 3
};
std::string getErrorMessage(ErrorCode code) {
switch (code) {
case SUCCESS:
return "Success";
case INVALID_INPUT:
return "Invalid input";
case FILE_NOT_FOUND:
return "File not found";
case PERMISSION_DENIED:
return "Permission denied";
default:
return "Unknown error";
}
}
int readFile(std::string filename) {
// 讀取文件邏輯
if (/* 文件不存在 */) {
return FILE_NOT_FOUND;
} else if (/* 無權限 */) {
return PERMISSION_DENIED;
} else {
return SUCCESS;
}
}
int main() {
std::string filename = "test.txt";
int result = readFile(filename);
if (result != SUCCESS) {
std::cout << "Error: " << getErrorMessage(result) << std::endl;
} else {
std::cout << "File read successfully" << std::endl;
}
return 0;
}
在上面的例子中,我們定義了一個枚舉類型ErrorCode
來表示不同的錯誤碼,然后編寫了一個getErrorMessage
函數來根據錯誤碼返回錯誤信息。在readFile
函數中,根據不同的情況返回不同的錯誤碼,然后在main
函數中根據返回的錯誤碼打印相應的錯誤信息。這樣就實現了錯誤碼和錯誤信息的關聯。