我认为这更像是一个风格问题,只是试图找出最佳方式。
我有以下情况......
在异步模式下执行数据库功能(使用数据适配器获取数据任务。使用ado.net提供的异步功能进行非查询)。
DB函数(数据获取)结果传递给辅助函数,辅助函数为获取的数据创建对象列表。
UI,它使用辅助函数返回的对象列表。
UI还将任务取消令牌传递给辅助函数 - > db函数,以便在UI关闭时取消异步任务。
现在,DB函数抛出的任何异常都可以在所有3个点处理,即在DB函数级别,辅助函数级别和UI级别。但是应该处理它的最佳位置(包括任务取消例外)。
答案 0 :(得分:2)
消费者应该在这种情况下处理UI的异常。您可以在中间层处理,但只是为了更容易理解UI并为最终用户提供有意义的消息而抛出一个新的