-1
我正在從事一個Python項目以從各種外部來源中抓取數據。除了幾個實例化一些對象並調用幾個方法的腳本之外,所有東西都是面向對象的。所以所有的邏輯都在不同的類中。 我真的沒有任何具體的代碼來說明我的觀點。返回錯誤而不是拋出錯誤的設計模式
基本上我有一個函數,試圖抓取一個URL,如果成功返回數據,否則返回false。 來自此的返回值被另一個函數saveData()
用於將數據保存到文件。如果刮擦失敗並返回false,則saveData()
返回false。然後這會傳遞下去,並讓它繼續前進。
原因scrape()
返回false而不是拋出錯誤是我將在腳本中使用它來刮掉很多URL,並且我不希望它由於一個錯誤的URL而死掉。
我不太喜歡這個「滴流」效應的想法,我必須一直檢查一個錯誤的值,以避免錯誤。
理想的解決方案是停止處理該URL,一旦它無法抓取它。我覺得這是一種常見的情況,可能有一些設計模式可以避免它?
也許這對於SO來說太抽象了。
這絕對不是一個答案,但我已經與(HTTPS [Python實現TRY樣類的想法]最近玩過:// github.com/zero323/tryingsnake)。也許你會發現它有幫助。 – zero323