📅  最后修改于: 2023-12-03 15:36:35.439000             🧑  作者: Mango
C++中的异常处理机制可以让程序在遇到异常时,能够给出一些指示性的信息,方便程序员对程序进行调试。在C++中,可以通过使用异常类来创建自己的异常对象,并通过抛出异常来触发异常处理机制。
要使用C++中的异常类,首先需要创建自己的异常类。一个简单的异常类定义如下:
class Exc {
public:
Exc(const std::string& message) : m_message(message) { }
std::string message() const { return m_message; }
private:
std::string m_message;
};
这个异常类包含一个构造函数,用于传递异常消息,并提供了一个message方法,用于获取异常消息。
要抛出异常,可以使用C++中的throw语句。以下是一个例子:
void foo() {
throw Exc("Exception occurred in function foo().");
}
int main() {
try {
foo();
}
catch (Exc& e) {
std::cout << e.message() << std::endl;
}
return 0;
}
在这个例子中,函数foo()抛出一个Exc类的异常,main()函数使用try-catch语句块来捕获并处理这个异常。 例如上面我们定义的异常类,当程序执行到throw Exc("Exception occurred in function foo().");
时,程序会跳到 main函数的 catch 语句块中,然后调用 e.message() 方法来获取异常信息。
在C++中,使用try-catch语句块来捕获并处理异常。以下是一个示例:
void foo() {
throw Exc("Exception occurred in function foo().");
}
int main() {
try {
foo();
}
catch (Exc& e) {
std::cout << e.message() << std::endl;
}
return 0;
}
在这个例子中,函数foo()抛出一个Exc类的异常,main()函数使用try-catch语句块来捕获并处理这个异常。当异常抛出时,程序会跳到catch语句块中,并调用e.message()方法来获取异常信息。
C++标准库中定义了一些异常类,可以在程序中使用。这里列出了一些常见的标准异常类:
以下是一个示例:
#include <stdexcept>
void foo() {
throw std::runtime_error("Exception occurred in function foo().");
}
int main() {
try {
foo();
}
catch (std::exception& e) {
std::cout << e.what() << std::endl;
}
return 0;
}
在这个例子中,函数foo()抛出一个std::runtime_error异常,main()函数使用try-catch语句块来捕获并处理这个异常。当异常抛出时,程序会跳到catch语句块中,并调用e.what()方法来获取异常信息。
C++中的异常处理机制可以让程序在遇到异常时,能够给出一些指示性的信息。要使用异常类,可以创建自己的异常类,并通过抛出异常来触发异常处理机制。要捕获并处理异常,可以使用try-catch语句块。C++标准库中定义了一些异常类,可以在程序中使用。