为什么要在方法的定义中使用throw?

时间:2017-04-02 14:13:21

标签: c++ c++11 exception exception-handling throw

我正在尝试为我们的代码库实现一个新的异常,我在SO中发现了这个帖子:

https://stackoverflow.com/a/8152888/654019

但我不确定为什么定义的方法如下:

virtual const char* what() const throw (){
    return msg_.c_str();
}

在这种情况下抛出是什么意思?

1 个答案:

答案 0 :(得分:1)

这是dynamic exception specification,自C ++ 11以来已弃用,并已从C ++ 17中删除。

throw()用于指定函数不会抛出任何异常(直接或间接),从C ++ 11我们应该使用noexceptnoexcept(true)