2017-06-05 34 views
0

我有一個名爲IgUserProfile服務類看起來是這樣的:我應該返回一個例外嗎? - 紅寶石

class IgUserProfile < IgRequest 
    def self.call(user_name) 
    json = make_request(user_name) 
    user_info = json['user_info'].text 
    Parsers::UserProfile.new user_info 
    end 
end 

有時候,如果用戶不存在(json自帶空),錯誤是調用.text時提出。我們可以處理這個錯誤,我們知道這意味着什麼:'未找到用戶'。

但是,我想要考慮在這種情況下從IgUserProfile.call返回的最佳結果。我正在考慮返回一個異常。東西如IG::UserNotFound。但是,正如我所看到的,Exceptions指示錯誤,但我不確定這是從應用程序角度來看的錯誤。我該如何解決這個問題?

在此先感謝。

+2

這是一個簡單的API設計決策:對於該方法是「空的」/「nope」/「none」一個有效的返回值,或者該方法是否總是返回一個對象,如果它不能被認爲是錯誤? – deceze

回答

0

由於這是常見的,無論是由用戶輸入錯誤的數據,還是失敗的查詢,您的程序應該期望,除了。