HP aC++/HP C A.06.25 Programmer's Guide
public:
D1() {};
};
class D2 : public C {
public:
D2() {};
};
class E: public D1, public D2 {
public:
E() {};
};
int main() {
E e;
try {
throw e;
}
catch(C) {
printf(“caught a C object\n”);
}
catch(D1) {
printf(“caught a D1 object\n”);
}
catch(D2) {
printf(“caught a D2 object\n”);
}
catch(E) {
printf(“caught an E object\n”);
}
try {
throw & e;
}
catch(C*) {
printf(“caught ptr to C object\n”);
}
catch(D1*) {
printf(“caught ptr to D1 object\n”);
}
catch(D2*) {
printf(“caught ptr to D2 object\n”);
}
catch(E*) {
printf(“caught ptr to E object\n”);
}
return 0;
}
Migration Considerations when Using Exception Handling 271