#include #define print_err_notice() \ (std::cout << "Error caught in file \"" << \ __FILE__ << "\" at line " << __LINE__ << "\n") int fred(int x) { int y; try { y = george(x-2); } catch (Error e) { print_err_notice(); throw; // re-throw error } return y; } int george(int x) { return harry(1+2*x); } int harry(int x) { if ( x < 0 ) throw Error(); else return 5*x; } main() { try { y = fred(x); } catch (Error e) { print_err_notice(); throw; // re-throw error } }