Ciao a tutti, è la prima volta che scrivo in questo forum, sto imparando a programmare e faccio riferimento al testo di stroustrup "programming principles and practice using c++". Utilizzo un mac con OSX 10.6.5, e compilo con g++ (i686-apple-darwin10-g++-4.2.1). Il file che includo ("std_lib_facilities.h") si trova qui sul sito di stroustrup.

Sono al capitolo degli errori (cap 5) e ho dei problemi con la gestione delle eccezioni. Ad esempio: nel seguente codice se inserisco un valore non int esce senza darmi il "bad input" che gli chiedo. Qualcuno sa dirmi perché e come risolvere la faccenda?

codice:
#include "../std_lib_facilities.h"

int main()
{
	vector<int>v;
	int i;
	while (cin>>i)
	{
		if(cin) 
		v.push_back(i); //inserisco i valori nel vettore
		else error("bad input\n");
	}
		for (i=0;i<v.size(); ++i) // 
			cout<<"v["<<i<<"] == "<<v[i]<<endl;
}
Non capisco da cosa possa dipendere