c++ - 这个声明是什么意思?异常()抛出()

标签 c++ stl

std::exception类定义如下

exception() throw() { }
virtual ~exception() throw();
virtual const char* what() const throw();

声明中的 throw() 语法是什么意思? throw() 可以带参数吗?没有参数是什么意思?

最佳答案

这是一个“异常规范”。 throw() 意思是“这个函数不会抛出任何异常”。您还可以指定异常,因此 throw(foo) 会说此函数可能会抛出 foo 类型的异常。

这个特性的好用性在C++社区中争论不休——普遍的评价似乎是它不是特别好用。有关详细信息,请查看 this Herb Sutter article .

关于c++ - 这个声明是什么意思?异常()抛出(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2058991/

相关文章:

c++ - 将 map 值交换为多 map

c++ - 我需要可复制的缓冲区,尽可能轻(例如不是零初始化)?

c++ - 如何检查传递给函数的容器是否已排序,如果没有则对其进行排序

c++ - 使用 boost::regex 时如何指定回车符和换行符匹配?

c++ - 如何使用 Matlab mex 输出二维整数数组?

c++ - QT C++应用程序在单一计时器中崩溃并连接

c++ - C/C++ ftplib : Undefined reference to _imp__FtpInit

c++ - 如何使用转换函数模板将 map 转换为 vector

c++ - 根据 C++ ISO 标准,什么是多次通过保证?

c++ - 为什么 array<T, N> 会比 vector<T> 慢?