Gin でのエラー処理の強化
Gin でのカスタム エラー処理には、エラー応答を処理するミドルウェアの使用が含まれます。これにより、エラー ロジックを通常のフロー ロジックから分離できます。
エラー処理ミドルウェア
<code class="go">type appError struct { Code int Message string } func JSONAppErrorReporter() gin.HandlerFunc { return func(c *gin.Context) { c.Next() errors := c.Errors.ByType(gin.ErrorTypeAny) if len(errors) > 0 { err := errors[0].Err var parsedError *appError switch err.(type) { case *appError: parsedError = err.(*appError) default: parsedError = &appError{ Code: http.StatusInternalServerError, Message: "Internal Server Error", } } // Respond with JSON serialized error c.IndentedJSON(parsedError.Code, parsedError) c.Abort() } } }</code>
ハンドラー関数での使用法
<code class="go">func fetchSingleHostGroup(c *gin.Context) { hostgroupID := c.Param("id") hostGroupRes, err := getHostGroupResource(hostgroupID) if err != nil { // Attach error to the context c.Error(err) return } // Respond with valid data c.JSON(http.StatusOK, *hostGroupRes) }</code>
サーバーのセットアップ
<code class="go">func main() { router := gin.Default() router.Use(JSONAppErrorReporter()) router.GET("/hostgroups/:id", fetchSingleHostGroup) router.Run(":3000") }</code>
追加リソース
Gin でのエラー処理の詳細については、以下を参照してください。次のリソース:
以上がミドルウェアのアプローチを使用して、Gin Web アプリケーション内のエラーを効果的に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。