2016-09-20 21 views
0

所以我有一個AngualrJS應用程序充當單頁面應用程序(SPA)。該SPA使用現有的Rails API來執行xhr請求,該請求將數據庫中的條目作爲JSON返回。刪除數據庫條目和AngularJS。如果條目無法刪除,我應該拋出異常嗎?

我目前正在嘗試編寫一些代碼來處理可能的服務器響應。首先想到的是刪除具有一對多關係的條目的請求。例如:

def Library < ActiveRecord::Base 
    has_many books 
end 

會是我的Rails模型。就我而言,如果他們目前有書籍,我不允許用戶銷燬圖書館。控制器將響應某種適當的狀態,可能是響應標題中的一個標誌。該視圖然後向用戶迴應一個消息,即該圖書館仍然有圖書,並且在書籍被移除之前不能被刪除。

所以我的問題是關於異常處理。如果我要遵循經典解釋:

例外情況是例外情況。

我得出的結論是,這不應該是一個例外情況,因爲預計用戶偶爾會嘗試刪除帶圖書的圖書館。此外,該計劃解決了這個問題,併爲此案件準備了一條消息。我是否認爲這不是個例外?

對於那些深入瞭解AngularJS的人,您何時在實踐中使用異常?

另外,我覺得需要注意的是鏈式的承諾,因爲我使用XHR請求的異步特性與.then.catch$q.reject等我還在新和Don」來處理異常是很重要的完全理解它與例外的關係。

回答

0

我也不會將此作爲例外處理。我的方法是在服務器端用警告級別記錄它,並在客戶端的視圖中顯示錯誤消息。

我不認爲我是專家,但我認爲如果異常是高效的應用程序,異常不應該作爲客戶端反饋出現,因爲用戶不應該被迫查看控制檯來搜索錯誤。

如果錯誤與您的錯誤類似,只會顯示錯誤消息。 如果它固定在你的方法中,並且只出現在通常使用時不應發生的情況下,你應該拋出一個異常,以便知道發生了什麼。但是,您還應該在視圖中爲用戶顯示一些反饋。