Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
下面代码中 throw 语句的目的是什么?
struct MyException : public exception { const char * what () const throw () { return "C++ Exception"; } };
它告诉编译器(和读者)这个函数永远不会通过异常退出。更重要的是,在这种情况下,它告诉编译器和读者该函数的所有重载必须满足相同的条件。(在这种情况下,它可能存在,因为函数what是在 . 中以这种方式声明的std::exception。)
what
std::exception
编辑:
这称为异常规范,从 C++11 开始,有两种形式:throw()和noexcept. 并且该表单 throw()还允许在括号中指定类型名称,在这种情况下,您保证不会抛出与这些类型不兼容的任何内容。(在 C++11 语法中,这种throw()形式被称为动态异常规范。)
throw()
noexcept