Update from the future: TL;DR to catch expressions in async methods you have to await
, Task.WaitAll
, or .Result
.
When an async
method throws an exception, that exception is placed on the returned Task
. It's not raised directly to the caller. This is by design.
So, you have to either await
the Task
returned from LoadMSpecAsync
or have your mSpecCompletionHandler
examine its Task
argument for exceptions. It will show up there.