,问一个c++throw()的有关问题

各位高手,问一个c++throw()的问题
根据标准解释的,ff()这个函数声明的时候加上throw()就表明这个函数不会抛出任何异常,但是我试了一下下面的代码,还是可以抛出异常的,我在g++ 3.4.2版本下测试的代码。这是为什么呢?

#include <iostream>
using namespace std;
void ff(void)throw();
void ff(void)throw()
{
try{
char a = 3;
        throw a;
}
catch(int e)
{
cout << e;
}
catch(...)
{
cout << "default";
}
}
int main()
{
ff();
    return 0;
}

------解决方案--------------------
void ff(void)throw();
你这样的声明只是告诉此函数的使用者说,我不会抛出异常,这样方便调用者捕捉异常。
而你实现不实现是你自己的事。你的函数是拿来给别人用的,不是给自己用的。

参考自《C++程序设计语言》第14.6章第334页。