THROW_LAST();
Rethrows the exception back to the next outer CATCH block. If your code does not contain an outer block, then the Microsoft Foundation Class Library prints an appropriate error message and terminates the program, just as it would if you provided no exception-processing logic.
This allows you to throw a locally created exception. If you try to throw an exception that you have just caught, it will normally go out of scope and be deleted. With THROW_LAST, the exception is passed correctly to the next CATCH handler.