在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
函数中根据返回的错误码打印相应的错误信息。这样就实现了错误码和错误信息的关联。