📅  最后修改于: 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
块来处理异常,并输出错误信息。