As can be seen in the Visual C++ source file, uncaught.cpp, uncaught_exception always returns false even in cases where the standard specifies that it should return true.
See Knowledge Base article Q242192 for more information.
See Also
Nonstandard Behavior