exception()
时间: 2023-06-23 21:43:03 浏览: 35
exception()是C++标准库中提供的一个类,用于表示异常情况。当程序执行过程中遇到一些无法处理的异常情况时,可以抛出一个exception对象,从而终止当前的程序执行流程,并将控制权交给异常处理程序。
exception类的构造函数和析构函数都是虚函数,因此可以通过继承该类来实现自定义的异常类,并重载构造函数和析构函数以实现特定的异常处理逻辑。
下面是一个使用exception类抛出异常的示例代码:
```c++
#include <iostream>
#include <exception>
int main() {
try {
// 进行一些操作,如果发生异常则抛出
throw std::exception();
} catch (std::exception& e) {
std::cout << "Exception caught: " << e.what() << std::endl;
}
return 0;
}
```
在上面的代码中,我们使用throw关键字抛出了一个std::exception对象。在catch块中,我们使用了std::exception类的what()函数获取异常的描述信息,并输出到控制台。
通常情况下,我们会自定义一些异常类,继承自std::exception,并在其中实现特定的异常处理逻辑。例如:
```c++
#include <iostream>
#include <exception>
class my_exception : public std::exception {
public:
my_exception(const char* msg) : m_msg(msg) {}
const char* what() const throw() {
return m_msg.c_str();
}
private:
std::string m_msg;
};
int main() {
try {
// 进行一些操作,如果发生异常则抛出自定义的异常类对象
throw my_exception("My exception occurred!");
} catch (std::exception& e) {
std::cout << "Exception caught: " << e.what() << std::endl;
}
return 0;
}
```
在上面的代码中,我们定义了一个my_exception类,继承自std::exception,并重载了what()函数以返回异常的描述信息。在程序中,如果发生异常,我们就会抛出一个my_exception对象,并在catch块中获取异常描述信息并输出到控制台。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)