Wie können wir in Go-Anwendungen die Fehlerbehandlung verbessern, indem wir einen benutzerdefinierten Fehlertyp wie appError und definieren? Implementieren eines benutzerdefinierten Handlers, um Fehler abzufangen und in die Antwort zu schreiben?
Gin empfiehlt die Verwendung von Middleware zur Verarbeitung von Fehlerantworten und zur separaten Fehlerlogik aus der normalen Ablauflogik. So implementieren Sie eine zentralisierte Fehlerbehandlung in Gin:
router.Use(JSONAppErrorReporter())
func JSONAppErrorReporter() gin.HandlerFunc {
return func(c *gin.Context) {
c.Next()
detectedErrors := c.Errors.ByType(gin.ErrorTypeAny)
if len(detectedErrors) > 0 {
err := detectedErrors[0].Err
processedError := getProcessedError(err)
c.JSON(processedError.Code, processedError)
c.Abort()
}
}
}
if err != nil {
c.Error(err)
return
}
Mit diesem Ansatz können Sie Fehler zentral behandeln und konsistente Fehlerreaktionen bereitstellen.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3