面试题答案
一键面试- 返回错误码:
- 函数返回一个特殊的错误码来表示操作是否成功。例如,对于一个除法函数,正常返回商,错误时返回一个特殊值。
#include <iostream> // 除法函数,返回错误码 int divide(int a, int b, double& result) { if (b == 0) { return -1; // 错误码 } result = static_cast<double>(a) / b; return 0; // 成功码 } int main() { int a = 10, b = 2; double result; int errorCode = divide(a, b, result); if (errorCode == 0) { std::cout << "结果是: " << result << std::endl; } else { std::cout << "除法错误" << std::endl; } return 0; }
- 抛出异常:
- 函数在遇到错误时抛出异常,调用者通过try - catch块捕获异常并处理。
#include <iostream> #include <stdexcept> // 除法函数,抛出异常 double divide(int a, int b) { if (b == 0) { throw std::runtime_error("除数不能为零"); } return static_cast<double>(a) / b; } int main() { int a = 10, b = 2; try { double result = divide(a, b); std::cout << "结果是: " << result << std::endl; } catch (const std::runtime_error& e) { std::cout << "捕获到异常: " << e.what() << std::endl; } return 0; }