以客戶端為中心的錯誤處理
瞭解和處理錯誤為了有效地處理錯誤,必須瞭解可能發生的錯誤型別。讓我們首先對您可能遇到的錯誤進行分類。 Web 客戶端環境中的錯誤型別 網路錯誤連線問題:與伺服器建立連線時出現問題。超時:請求花費太長時間才能收到響應。DNS 錯誤:域名解析問題。HTTP 錯誤:404 Not Found、500 Internal Server Error 等錯誤 伺服器 API 錯誤無效響應:來自伺服器的意外或格式錯誤的資料。身份驗證錯誤:使用者身份驗證或授權問題。速率限制:由於超出 API 使用限制而產生的限制。 使用者瀏覽器環境錯誤瀏覽器相容性:由於瀏覽器處理某些功能的方式不同而產生的問題。JavaScript 錯誤:客戶端 JavaScript 程式碼中的錯誤。資源載入錯誤:載入影像、指令碼或樣式表等資源時出現問題。 其他錯誤客戶端錯誤:與使用者裝置或作業系統相關的錯誤。UI/UX 錯誤:使用者介面或使用者體驗問題,例如連結損壞或佈局不正確。可能會發生各種型別的錯誤。然而,這些錯誤通常可以分為兩類:預期錯誤:提前知道發生情況和性質的錯誤。意外錯誤:事先不知道其發生和性質的錯誤。讓我們將討論過的錯誤分為這些類別。 錯誤是否可以預見? 預期錯誤從具有明確狀態程式碼的伺服器 API 收到的錯誤可以被視為預期錯誤,因為它們可以提前預測和解決。例如未授權訪問(401)或禁止訪問(403)等錯誤,可以根據情況進行適當處理。為每個狀態程式碼定義更詳細的錯誤程式碼以管理響應錯誤的應用程式邏輯也很常見。這些被稱為預期錯誤。 意外錯誤另一方面,500 範圍內的伺服器錯誤被歸類為 意外錯誤,因為它們是不可預測的。伺服器因任何原因無法響應的情況隨時可能發生。另外,由於使用者的網路環境或瀏覽器環境而可能出現的錯誤很難預測,因此被歸類為意外錯誤。 使用者和錯誤錯誤還可以根據與使用者的互動進行分類,而不僅僅是環境。對錯誤進行分類的一種方法是考慮使用者是否可以對錯誤採取措施。以下是此分類的標準:使用者可以理解和解決的錯誤(幫助使用者繼續使用應用程式的錯誤)。使用者無法解決的錯誤(無法為使用者提供任何幫助的錯誤)。 可解決的錯誤例如,身份驗證或授權錯誤就屬於此類。未登入的使用者可能會遇到 401 狀態錯誤。在這種情況下,您可以提供登入螢幕或顯示一條訊息,指示需要登入。如果使用者沒有訪問特定螢幕的許可權,您可以引導他們向管理員請求訪問許可權。沒有一個產品開發者會歡迎使用者放棄。為遇到錯誤的使用者提供指導以幫助他們克服這種情況至關重要。例如,為臨時網路錯誤提供重新整理按鈕,或者在訪問不存在的頁面時提供返回上一螢幕的按鈕。 無法解決的錯誤但是,在某些情況下,通知使用者錯誤情況根本沒有幫助。例如,如果程式碼包含無法在低規格裝置或瀏覽器上執行的元件,則使用者無法對其執行任何操作。 (也許是一條建議使用不同瀏覽器的訊息?)兩種情況,1 和 2,都涉及提供訊息。不同之處在於,案例 1 包含一些提示使用者採取步驟的操作或指導。遇到的錯誤是否是使用者可以自行解決的? 如何處理錯誤那麼,我們應該如何處理發生的錯誤呢?當發生錯誤時應用程式應該向使用者提供什麼樣的介面?讓我們根據不同型別的錯誤特點來探討一下如何處理它們。 不可預測但可解決的錯誤一個典型的例子是網路錯誤。這些可能隨時發生,具體取決於使用者的網路環境。最簡單的解決方案是通知使用者這是一個“臨時錯誤”並提供重試之前操作的指導。 誤差範圍對於這些錯誤,確保整個應用程式不會受到不利影響至關重要。例如,如果一個應用程式在一個螢幕上呼叫 10 個 API,則失敗的一個 API 不應在整個應用程式中觸發錯誤訊息,並且需要重試所有呼叫。相反,只專注於恢復失敗的區域。 不可預測且無法解決的錯誤這些錯誤很難預測並且沒有直接的解決方案。在開發過程中應該儘量減少此類錯誤,並且應該有一個在發生錯誤時進行處理的計劃。由於使用者無法自行解決這些錯誤,因此可能有必要提供一種簡單的方式來聯絡客戶支援。 監控開發人員無法控制的錯誤應使用 Sentry 等工具進行監控。需要修復這些錯誤以防止使用者遇到它們。此外,確保有一種機制可以讓使用者在遇到此類錯誤時返回到應用程式。 可預測但無法解決的錯誤這些是已知錯誤,使用者沒有可用的解決方案。如果使用者無法自行解決這些問題,則表明錯過了錯誤處理的機會。如果使用者故意執行異常操作,則可能是存在安全漏洞的跡象。 與安全相關的錯誤當有惡意利用該應用程式時,就會出現這些錯誤。它們通常源於安全漏洞,應該在開發過程中加以預防。解決 CORS 和 XSS 等基本安全問題並與安全團隊協作構建安全的應用程式至關重要。 可預測和可解決的錯誤這些錯誤通常是開發人員已經意識到的業務邏輯的一部分:401 未經授權錯誤:需要登入。404 Not Found 錯誤:訪問錯誤的頁面。其他業務邏輯錯誤:由應用程式的邏輯定義。在這些情況下,請在應用程式內提供適當的指導或建立單獨的頁面來指導使用者。 指導的重要性使用者應該清楚地瞭解遇到錯誤訊息後下一步該做什麼。這有助於減少錯誤頻率並防止使用者放棄。因此,除了錯誤訊息之外,還必須包含號召性用語。例如,如果存在欄位驗證錯誤,請關注發生錯誤的欄位。如果使用者導航到不存在的頁面,請提供一個返回上一螢幕的按鈕。 結論我們探索了錯誤處理。讓我們利用各種工具和技術來有效地管理錯誤,例如錯誤監控工具和React的ErrorBoundary,它可以捕獲有限範圍內的錯誤。 以上就是以客戶端為中心的錯誤處理的詳細內容,更多請關注我的其它相關文章!
相關文章
- CRM實現以客戶為中心 (轉)
- python socketserver處理客戶端的流程PythonServer客戶端
- Redis 是如何處理命令的(客戶端)Redis客戶端
- EXP客戶端版本差異造成的錯誤客戶端
- Kafka 處理器客戶端介紹Kafka客戶端
- 如果呼叫遠端遠端url介面為https,且存在客戶端證書驗證,如何在客戶端處理HTTP客戶端
- node端統一錯誤處理
- ZooKeeper客戶端事件序列化處理客戶端事件
- 分散式配置中心客戶端分散式客戶端
- [TEAP早期試讀]真正的好處:客戶端批量處理客戶端
- ora-01031錯誤(在客戶端以SYS使用者登陸報錯)客戶端
- nginx 處理客戶端請求的完整過程Nginx客戶端
- 專案分享九:客戶端的異常處理客戶端
- 以 Laravel 的方式呼叫 ai 客戶端LaravelAI客戶端
- mysql客戶端連線的幾個常見錯誤MySql客戶端
- Beego當客戶端cookie為空時報錯Go客戶端Cookie
- 埃森哲:46%的化學公司將以客戶為中心作為首要任務
- 禁止客戶端 誤 truncate table客戶端
- 錯誤處理
- go的錯誤處理Go
- 為oracle客戶端瘦身:Oracle客戶端
- windows客戶機連線gerrit的一個報錯處理Windows
- 對客戶又是供應商的客戶清賬處理
- 禁止客戶端誤刪除tablespace客戶端
- 遠端連線錯誤程式碼及處理
- Laravel 統一錯誤處理為 JSONLaravelJSON
- PHP 錯誤處理PHP
- php錯誤處理PHP
- Go 錯誤處理Go
- Swift錯誤處理Swift
- Zabbix錯誤處理
- mysqldump錯誤處理MySql
- Oracle客戶端非預設路徑安裝出現的錯誤Oracle客戶端
- Go-Micro客戶端請求報500錯誤的解決方法Go客戶端
- axios 的錯誤處理iOS
- COM的錯誤處理 (轉)
- 網路傳輸時間和客戶端處理時間的界定(批處理應用)客戶端
- Redis處理客戶端連線的內部實現機制RXRedis客戶端