public static void TryFinallyWithException() { var lambda = AsyncLambda <Func <Task, Action, Task> >(fun => { Try(() => Await(fun[0])).Finally(fun[1].Invoke()).End(); }); var fn = lambda.Compile(); var source = new TaskCompletionSource <int>(); var callback = new FinallyCallback(); var result = fn(source.Task, callback.OnFinally); source.SetException(new ApplicationException()); Throws <ApplicationException>(result.GetAwaiter().GetResult); True(callback.Value); }
protected abstract Promise FinallyT(FinallyCallback final);
public Promise Finally(FinallyCallback final) { return(FinallyT(final)); }