📜  logic_error (1)

📅  最后修改于: 2023-12-03 15:32:45.242000             🧑  作者: Mango

logic_error 异常类

logic_error 是 C++ 标准库中的一个异常类,表示逻辑错误。它是 std::exception 类的派生类,因此可以在需要捕获异常的地方捕获。

继承关系
classDiagram
    Exception <|-- std::logic_error
构造函数

logic_error 的构造函数有两个,一个是默认构造函数,另一个是接受一个字符串作为参数的构造函数。

class logic_error : public exception
{
public:
  explicit logic_error(const string& what_arg);
  explicit logic_error(const char* what_arg);
};
使用方法

在发生逻辑错误的地方,可以抛出一个 logic_error 异常,将错误信息传递给调用者。

#include <stdexcept>
#include <string>

void foo()
{
    throw std::logic_error("Something went wrong!");
}

int main()
{
    try {
        foo();
    } catch (const std::exception& e) {
        // 处理异常
    }
}
示例

下面是一个简单的例子,展示了如何使用 logic_error 异常类。

#include <stdexcept>
#include <iostream>

int main()
{
    int x = 0;
    try {
        if (x == 0) {
            throw std::logic_error("x cannot be zero");
        }
        int y = 10 / x;
    } catch (const std::logic_error& e) {
        std::cerr << "Logic error: " << e.what() << '\n';
    } catch (const std::exception& e) {
        std::cerr << "Exception: " << e.what() << '\n';
    }
    return 0;
}

在这个例子中,我们对 x 进行了检查,如果它等于 0,则抛出 logic_error 异常,并将错误信息传递给调用者。在 try 块中,我们也使用了 catch 块来处理异常,并输出错误信息。