我的问题更多地与使用异步和等待的应用程序的体系结构有关。
假设我有一个 Web 服务,它返回一个 JSON 格式的列表Books
(或任何对象)。
在传统的实现中(没有async
和await
),我将使用三个不同的类:BooksParser
、BooksWebService
(单例)和BooksManager
(单例),在Page
我需要书籍列表的地方,我将有两种委托方法,一种用于成功,一种用于错误。所以基本上我会调用BooksManager
并且BooksManager
会调用BooksWebService
,响应将被异步下载,传递给BooksParser
,BooksParser
在解析和创建之后List<Book>
将调用主线程中实现的委托方法Page
(成功之一或错误之一)。
我很难理解如何进行过渡和使用async/await
. 可以说我保持相同的三个类。在 BooksManager 以及 BooksWebService 中,我会将最初调用的方法更改为类似的方法,然后从我的async Task<List<Books>> GetBooks(...).
方法中调用此方法并等待其响应。但问题是我无法真正理解如何处理错误(例如:没有 Internet 连接,或来自 WebService 的 4xx 状态代码)。BooksManager
Page
我应该使用 try/catch 方法还是有更清洁的方法?