Example of Throwing an Unspecified Exception

In the following example, NameTooShort is thrown from within a function that explicitly states that it will only throw NameTooLong . This is a valid function, although at run time, if NameTooShort is thrown, a call to unexpected() will be made.

#include <string.h>            // needed for strlen
class NameTooLong {};
class NameTooShort {};

void check(char* fname) throw (NameTooLong)
{
       if ( strlen(fname)<4 ) throw NameTooShort();
}