C#,异步函数链,处理异常

时间:2016-07-18 12:07:55

标签: c# exception-handling async-await

我认为这更像是一个风格问题,只是试图找出最佳方式。

我有以下情况......

  1. 在异步模式下执行数据库功能(使用数据适配器获取数据任务。使用ado.net提供的异步功能进行非查询)。

  2. DB函数(数据获取)结果传递给辅助函数,辅助函数为获取的数据创建对象列表。

  3. UI,它使用辅助函数返回的对象列表。

  4. UI还将任务取消令牌传递给辅助函数 - > db函数,以便在UI关闭时取消异步任务。

    现在,DB函数抛出的任何异常都可以在所有3个点处理,即在DB函数级别,辅助函数级别和UI级别。但是应该处理它的最佳位置(包括任务取消例外)。

1 个答案:

答案 0 :(得分:2)

消费者应该在这种情况下处理UI的异常。您可以在中间层处理,但只是为了更容易理解UI并为最终用户提供有意义的消息而抛出一个新的