MST

星途 面试题库

面试题:C++ 函数返回普通类型时常见错误处理方式

在C++ 中,当一个函数返回普通类型(如int、double等),请列举至少两种常见的错误处理方式,并各给出一段简单代码示例。
14.0万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
  1. 返回错误码
    • 函数返回一个特殊的错误码来表示操作是否成功。例如,对于一个除法函数,正常返回商,错误时返回一个特殊值。
    #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;
    }
    
  2. 抛出异常
    • 函数在遇到错误时抛出异常,调用者通过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;
    }