1
我正在爲網絡協議設計一個API,在解析返回的JSON時,我可能會遇到一些例外情況。在處理「常規」編程時,我會拋出異常,但是我的API是異步的並且基於回調。這意味着拋出異常是不可能的。拋出Android的異步異常
我目前的解決方案是在解析回調時傳遞捕獲異常,但是我認爲這不是在Java/Android中使用異常的正確方法。
我還有其他的替代方案嗎?
我正在爲網絡協議設計一個API,在解析返回的JSON時,我可能會遇到一些例外情況。在處理「常規」編程時,我會拋出異常,但是我的API是異步的並且基於回調。這意味着拋出異常是不可能的。拋出Android的異步異常
我目前的解決方案是在解析回調時傳遞捕獲異常,但是我認爲這不是在Java/Android中使用異常的正確方法。
我還有其他的替代方案嗎?
Dario Crivelli最近發佈了一個巧妙的解決方案,稱爲異步自上而下鏈模式。
該文章可用here。
這是抽象:
層次異常處理和靜態異常檢查是由Java語言提供的最顯著的特點之中;但是,它們的支持僅限於程序代碼,並且只能在函數調用的層次結構中使用。因此,在涉及事件驅動編程或異步編程方面,沒有什麼可以幫助我們,其中工作分散在許多彼此獨立的函數中。這在某些體系結構中尤其令人沮喪,其中邏輯設計嚴格分層,控制流實際上是順序的,但涉及異步API調用。 本文涉及後一種情況;我們展示瞭如何通過編寫遵循特定模式並依賴於合適的支持庫的代碼,實現分層異常處理和靜態異常檢查的好處。