// 4.2: Eccezioni
#include <iostream>
class Tipo1 { };
class Tipo2 { };
class Tipo3 { };
class Errore {
private:
const char *s;
public:
const char *get_text() { return s; };
Errore(const char *k)
: s(k) { }
};
using namespace std;
void prova();
int main() {
try {
cout << "aoo\n";
prova();
}
catch(Tipo1 a) {
cout << "catch di un'eccezione di tipo 1\n";
}
catch(Tipo2 a) {
cout << "catch di un'eccezione di tipo 2\n";
}
catch(Errore a) {
cout << "catch di un'eccezione di tipo Errore, testo: " << a.get_text() << "\n";
}
catch(...) {
cout << "catch di un'eccezione di altro tipo\n";
}
}
int prova2() {
cout << "Lancio l'eccezione\n";
throw Tipo1();
//throw Tipo2();
//throw Tipo3();
//throw Errore("definizione dell'errore");
}
void prova() {
prova2();
}