Below is the code from the Intercept method on a custom type that implements IInterceptor of the Castle Dynamic Proxy library. This snippet is from
Intercept
IInterceptor
Instead of:
tcs2.SetException(x.Exception);
You should use:
x.Exception.Handle(ex => { tcs2.SetException(ex); return true; });
to bubble up the real exception...