Δημοσιεύτηκε: 29 Νοέμ 2011, 19:45
από demosthenesk
Γεια σας και πάλι.

Στην εξερεύνηση μου στον όμορφο κόσμο της C++ ήρθα αντιμέτωπος με το εξής και θα ήθελα τα φώτα σας.

Έχω μια κλάση όπου μέσα σε κάποιο σημείο έχει το εξής:
Κώδικας: Επιλογή όλων
void Time::setTime( int h, int m, int s )
{
// validate hour, minute and second
if ( ( h >= 0 && h < 24 ) && ( m >= 0 && m < 60 ) && ( s >= 0 && s < 60 ) )
{
hour = h;
minute = m;
second = s;
} // end if
else
throw invalid_argument("hour, minute and/or second was out of range" );
} // end function setTime


Στην main τώρα που δημιουργώ ένα αντικείμενο Time έχω
Κώδικας: Επιλογή όλων

try
{
t.setTime( 99, 99, 99 ); // all values out of range
} // end try
catch ( invalid_argument &e )
{
cout << "Exception: " << e.what() << endl << endl;
} // end catch


Το παράδειγμα είναι από το βιβλίο C++ How to program του Deitel σελίδα 386.

Το Anjuta μου βγάζει ωστόσο το εξής λάθος.

έγραψε:/home/user/Documents/How_to_program_C/fig09_01/src/main.cpp:29:10: error: expected type-specifier before ‘invalid_argument’


Πως να χρησιμοποιήσω την catch?