Why throw an exception and then catch it?