#include <iostream>
using namespace std;

struct A {
    A() { cout << "A()" << endl; }
    A(const A &a) { cout << "A(const A&)" << endl; }
    virtual ~A() { cout << "~A()" << endl; }
};

int main() {
    A a;
    try {
        throw a;
    } catch (A &a) {
        cout << "Caught" << endl;
    }
    cout << "After catch" << endl;
    return 0;
}