以下代码中throw语句的用途是什么?
struct MyException : public exception
{
const char * what () const throw ()
{
return "C++ Exception";
}
};
答案 0 :(得分:3)
它告诉编译器(和读者)这个函数会
永远不会通过例外退出。更重要的是,在这种情况下,它
告诉编译器和读者所有的重载
功能必须满足相同的条件。 (在这种情况下,它是
可能存在因为函数what
被声明了
std::exception
中的方式。)
编辑:
这称为异常规范,从C ++ 11开始,
有两种形式:throw()
和noexcept
。形式
throw()
还允许在括号中指定类型名称,
在这种情况下,您保证不会抛出任何不兼容的东西
与这些类型。 (在C ++ 11语法中,throw()
形式
被称为动态异常规范。)