关于what()函数的重写,为什么后面跟着throw()?

const char * what () const throw ()
{
    return "C++ Exception";
}

为啥what()后面还能再跟一个throw()?这是什么什么规则/原理?有什么意义?

const throw()是异常规格说明,表示what函数可以抛出异常的类型,类型说明放到()里,这里面没有类型,就是声明这个函数不允许抛出任何异常