Maison > Article > développement back-end > Comment gérer les exceptions HTTP dans Golang ?
Comment gérer les exceptions HTTP ? Dans Golang, la gestion des exceptions HTTP inclut les méthodes suivantes : Gestionnaire d'erreurs HTTP personnalisé : utilisez http.Error pour personnaliser la réponse d'erreur. Gestion des exceptions intégrée : utilisez recovery() pour récupérer les exceptions et errorHandler pour envoyer des réponses d'erreur. Cas pratique : Gestion des requêtes invalides : envoi d'une réponse d'erreur selon la méthode de requête. Gestion des erreurs internes du serveur : utilisez defer recovery() pour intercepter les exceptions et envoyer des réponses d'erreur. Gérez les autres exceptions : gérez-les de la même manière.
Lors de l'écriture d'un programme Golang pour gérer les requêtes HTTP, vous pouvez rencontrer des situations anormales, telles que l'envoi d'une requête invalide par le client, une erreur de serveur interne ou un problème de connexion réseau. Une gestion appropriée de ces exceptions est importante pour créer des applications robustes et conviviales.
Pour les conditions d'erreur connues, nous pouvons créer des gestionnaires d'erreurs HTTP personnalisés pour gérer les exceptions. La fonction http.Error
peut être utilisée pour envoyer des réponses d'erreur personnalisées : 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) } }() // 业务逻辑 }Gestion intégrée des exceptionsGolang prend en charge les exceptions intégrées telles que
panic
et récupérer). La fonction <code>recover()
peut reprendre l'exécution du programme après une exception et renvoyer la valeur de l'exception : import "net/http" func invalidRequestHandler(w http.ResponseWriter, r *http.Request) { if r.Method != "GET" { errorHandler(w, r, http.StatusBadRequest) return } // 处理 GET 请求 }Cas pratique
Scénario : Gestion des requêtes invalides
import "net/http" func internalErrorHandler(w http.ResponseWriter, r *http.Request) { defer func() { if err := recover(); err != nil { errorHandler(w, r, http.StatusInternalServerError) } }() // 业务逻辑 // 如果业务逻辑引发异常,程序将恢复执行并发送错误响应 }
Scénario : Gestion des requêtes invalides erreurs internes du serveur
🎜rrreee🎜Avec ces méthodes, nous pouvons gérer les exceptions HTTP avec élégance, renvoyer des réponses d'erreur significatives au client et empêcher l'application de planter en raison d'erreurs inattendues. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!