The ExceptionDispatchInfo class can be found in System.Runtime.ExceptionServices namespace and is used to capture an exception that occurs at a point, and it can be thrown later using the ExceotionDispatchInfo.Throw method.
See below for an example.
ExceptionDispatchInfo exceptionDispatchInfo = null;
try
{
//code that throws error
}
catch (Exception ex)
{
exceptionDispatchInfo = ExceptionDispatchInfo.Capture(ex);
}
At a later point in time, you could use the Throw method to throw it, exceptionDispatchInfo.Throw();