Методы, возвращающие Task
- такие как Task.Run
или async
методы, будут помещать любые исключения из возвращаемого Task
. Вам решать это исключение. Обычно это делается с помощью await
, например:
await Task.Run(() => { throw ... });
В вашем случае проблема в этой строке:
result = OnSomeEvent((s, ea) => RunSomeTask());
В этом коде RunSomeTask
возвращает Task
и что Task
никогда не ожидается. Чтобы наблюдать за исключением, вы должны await
выполнить эту задачу.