c++: std::exception 的 what() 方法中的奇怪语法

标签 c++ exception

当我从 std::exception 继承以定义我自己的异常类型时,我需要覆盖具有以下签名的 what() 方法:

virtual const char* what() const throw();

这对我来说肯定很奇怪,就像签名中有两个方法名称一样。这是一些非常具体的语法吗,比如纯虚方法,例如:

virtual int method() const = 0;

或者这是一个可以以某种方式在其他上下文中使用的功能?如果是这样,它可以用来做什么?

最佳答案

它被称为异常规范throw() 不允许从该方法内部抛出任何异常 throw(int) 只允许类型为 int 的异常被抛出。

异常规范将在 C++0x 中删除。 This很好地解释了原因。

关于c++: std::exception 的 what() 方法中的奇怪语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2903882/

相关文章:

c++ - 以编程方式评估 somaxconn 的值,以设置监听积压参数

c++ - 提升 asio 客户端身份验证

java - 可以抛出运行时异常?

c# - 使用 Fluent Security 捕获来自RequiredRole 和其他策略的异常以进行重定向

c++ - 基类方法别名

c++ - 如何检测对象是否主要由堆栈或动态内存组成

c++ - 如何在设计实现层面避免内存泄漏

java - 使用Spring MVC如何获取用户提交后的表单数据?

c# - 使用 Ado.Net 存储过程时是否可靠地抛出异常?

java - 如何判断在 IntelliJ 中调试时是否触发了 Java 异常?