通常應該將函數和類方法中發生的錯誤傳回給調用者來處理?什麼時候你可能不會?我在問,因爲我正在創建一個模塊來執行oauth
跳舞,並且如果您嘗試訪問的網站得到否定迴應,我不確定是否應該將其傳遞給調用者,或者在那裏處理它。有關將錯誤傳遞給調用者的最佳做法是什麼?
1
A
回答
3
這一般取決於回答兩個問題:
什麼層的信息,解釋錯誤,並提交給用戶或開發?
什麼圖層可以糾正錯誤,上層無法說出它曾經發生過的一種方式?
逐層檢查問題。找出錯誤可以被捕獲,糾正和透明處理的地方。如果做不到這一點,可以找出哪些錯誤可以用有用的術語解釋,並充實相關信息。
通常情況下,實際遇到錯誤的函數既不能充分解釋也不能糾正錯誤。 它應該引發異常,將決定委託給上層,可能會將附加數據附加到錯誤。
當異常升高到足夠高時,您會發現自己處於上述兩種情況中的一種情況,您可以透明地更正錯誤或以清晰的語言報告錯誤,並提供所需信息追查原因。
在您的OAuth模塊的情況下,你應該:
- 決定行動是否重試是有道理的(如網絡錯誤)
- 確定問題的原因(如錯誤的憑據),並提高一個明顯表達的例外。
1
我們通常在raiseError
,當我們期望某個值或來自用戶的輸入。例如:如果一個程序要求用戶輸入一個正整數並輸入一個負整數,那麼我們提出一個錯誤並要求他們輸入一個正整數。
我們處理不符合用戶的錯誤。例如:如果要訪問的網站需要電子郵件驗證,並且用戶輸入的電子郵件不被識別,那麼請raiseError
並要求他們輸入一個有效的電子郵件地址,但是如果網站有搜索欄並且輸入的字符串是沒有正確地分割搜索,我們得到一個keyValueError
,這取決於程序員來處理它。
相關問題
- 1. 傳遞access_token進行API調用的最佳做法是什麼
- 2. 將變量值從服務器傳遞給JavaScript的最佳做法是什麼?
- 3. 最佳做法是什麼?
- 4. 通過Ajax調用傳遞ID的最佳方法是什麼?
- 5. 將事件傳遞給ViewModel的最佳方式是什麼?
- 6. 將值傳遞給模態的最佳方式是什麼?
- 7. 有關const實例方法的最佳做法是什麼?
- 8. 將文件上傳到MemoryStream(C#)的最佳做法是什麼?
- 9. PHP - 將變量傳遞給包含文件的最佳做法
- 10. 將NSDateComponents傳遞給UILocalNotification的最佳做法?
- 11. Swift - 將嵌套數組傳遞給函數的最佳做法
- 12. 將參數從Controller傳遞到指令的最佳做法是什麼?
- 13. 有關超負荷的最佳做法是什麼
- 14. 將回調函數傳遞給std :: map的最佳方式是什麼?
- 15. 使代碼錯誤穩定的最佳做法是什麼?
- 16. 異步JavaScript錯誤處理的最佳做法是什麼?
- 17. WPF ValueConverter錯誤處理的最佳做法是什麼?
- 18. 記錄錯誤的最佳做法是什麼?
- 19. 處理內存不足錯誤的最佳做法是什麼?
- 20. 從FileSystemWatcher錯誤中恢復的最佳做法是什麼?
- 21. 從函數返回錯誤的最佳做法是什麼?
- 22. 處理重複方法調用的最佳做法是什麼?
- 23. 將共享指針傳遞給非擁有函數時的最佳做法是什麼?
- 24. 將SQL數據庫的行傳遞給Javascript的最佳方法是什麼?
- 25. 將對象傳遞給NodeJS中的子文件的最佳方法是什麼?
- 26. 什麼是將特定參數傳遞給方法的最佳方式
- 27. 在C#中將參數傳遞給Func <>的最佳方法是什麼?
- 28. 將變量傳遞給Woocommerce產品的最佳方法是什麼?
- 29. 在asp.net中將流pdf傳遞給HttpHandler的最佳方法是什麼?
- 30. 將瓶子變量直接傳遞給vue的最佳方法是什麼?