www.digitalmars.com Home | Search | C & C++ | D | DMDScript | News Groups | index | prev | next
Archives

D Programming
D
D.gnu
digitalmars.D
digitalmars.D.bugs
digitalmars.D.dtl
digitalmars.D.dwt
digitalmars.D.announce
digitalmars.D.learn
digitalmars.D.debugger

C/C++ Programming
c++
c++.announce
c++.atl
c++.beta
c++.chat
c++.command-line
c++.dos
c++.dos.16-bits
c++.dos.32-bits
c++.idde
c++.mfc
c++.rtl
c++.stl
c++.stl.hp
c++.stl.port
c++.stl.sgi
c++.stlsoft
c++.windows
c++.windows.16-bits
c++.windows.32-bits
c++.wxwindows

digitalmars.empire
digitalmars.DMDScript

c++ - Exception specifications

Hi,

#include <iostream>
void test() throw (int);
int main()
{
	test();
	std::cout << "Completed successfully" << std::endl;
}
void test() throw (int)
{
	try
	{
		throw 'a';
	}
	catch (char const&)
	{
		std::cout << "Caught char" << std::endl;
	}
}

When built with DM and run, the test function never completes.
The throw (int) exception specification should prevent any exception of 
type different from int to be thrown out of the function, but it appears 
DM does not allow throwing of such exceptions altogether (even though 
they are handled within the function and not thrown out).

Regards,
Dimitri
Mar 06 2004