std::exception class is defined as follows
exception() throw() { } virtual ~exception() throw(); virtual const char* what() const throw();
Can throw() take parameters?
Yes it can be used to declare what parameteres the method is allowed to throw.
Also the destructor is marked as throw(), destructors should never ever throw exceptions as they may already be executing in the context of a thrown exception.