异常的方法签名中的 throw 语句

Throw statement in exception's method signature

本文关键字:throw 语句 方法 异常      更新时间:2023-10-16

以下代码中throw语句的用途是什么?

struct MyException : public exception
{
  const char * what () const throw ()
  {
    return "C++ Exception";
  }
}; 

它告诉编译器(和阅读器)这个函数将永远不要通过异常退出。更重要的是,在这种情况下告诉编译器和读者函数必须满足相同的条件。(在这种情况下可能存在,因为函数what被声明为方式为std::exception。)

编辑:

这被称为异常规范,有两种形式:throw()noexcept。和形式CCD_ 5还允许在括号中指定类型名称,在这种情况下,您保证不会抛出任何不兼容的东西使用这些类型。(在C++11语法中,throw()形式称为动态异常规范。)