如何處理 HTTP 異常?在 Golang 中,HTTP 異常處理包含以下方法:自訂 HTTP 錯誤處理程序:使用 http.Error 自訂錯誤回應。內建異常處理:使用 recover() 恢復異常,並使用 errorHandler 發送錯誤回應。實戰案例:處理無效請求:根據請求方法發送錯誤回應。處理伺服器內部錯誤:使用 defer recover() 捕獲異常並發送錯誤回應。處理其他異常:透過類似的方法進行處理。
#在編寫Golang 程式處理HTTP 請求時,可能會遇到異常情況,例如用戶端發送無效請求、伺服器內部錯誤或網路連線問題。正確處理這些異常對於建立健壯且用戶友好的應用程式非常重要。
對於已知的錯誤情況,我們可以建立自訂 HTTP 錯誤處理程序來處理例外狀況。 http.Error
函數可以用來發送自訂錯誤回應:
import ( "net/http" ) func errorHandler(w http.ResponseWriter, r *http.Request, status int) { http.Error(w, http.StatusText(status), status) }
Golang 提供了對內建異常(例如panic
和recover
)的支援。 recover()
函數可在異常發生後恢復程式的執行,並傳回例外值:
func recoverHandler(w http.ResponseWriter, r *http.Request) { defer func() { if err := recover(); err != nil { errorHandler(w, r, http.StatusInternalServerError) } }() // 业务逻辑 }
## 場景:處理無效請求
import "net/http" func invalidRequestHandler(w http.ResponseWriter, r *http.Request) { if r.Method != "GET" { errorHandler(w, r, http.StatusBadRequest) return } // 处理 GET 请求 }
場景:處理伺服器內部錯誤
import "net/http" func internalErrorHandler(w http.ResponseWriter, r *http.Request) { defer func() { if err := recover(); err != nil { errorHandler(w, r, http.StatusInternalServerError) } }() // 业务逻辑 // 如果业务逻辑引发异常,程序将恢复执行并发送错误响应 }透過這些方法,我們可以優雅地處理HTTP 異常,向客戶端傳回有意義的錯誤回應,並防止應用程式因意外錯誤而崩潰。
以上是如何在 Golang 中處理 HTTP 異常?的詳細內容。更多資訊請關注PHP中文網其他相關文章!