Gin을 사용하여 더 나은 오류 처리
이 기사에서는 접근 방식에서 영감을 받아 Gin을 사용하여 더 나은 오류 처리를 구현하는 방법을 살펴보겠습니다. Go 프레임워크에 사용됩니다. 우리의 목표는 오류 처리를 중앙 집중화하여 중복 코드를 더 쉽게 관리하고 줄이는 것입니다.
사용자 정의 오류 유형
사용자 정의 appError와 유사합니다. Go 프레임워크에 입력하고 오류 코드와 메시지를 구조화된 방식으로 처리하기 위한 사용자 정의 오류 유형을 정의해 보겠습니다.
<code class="go">type appError struct { Code int `json:"code"` Message string `json:"message"` }</code>
오류 보고용 미들웨어
중앙 집중화하려면 오류 처리를 통해 오류 응답을 처리할 미들웨어를 만들 수 있습니다.
<code class="go">func JSONAppErrorReporter() gin.HandlerFunc { return jsonAppErrorReporterT(gin.ErrorTypeAny) } func jsonAppErrorReporterT(errType gin.ErrorType) gin.HandlerFunc { return func(c *gin.Context) { c.Next() detectedErrors := c.Errors.ByType(errType) // Process errors and convert them to our custom error type if len(detectedErrors) > 0 { err := detectedErrors[0].Err parsedError := parseAPperror(err) // Put error into response c.IndentedJSON(parsedError.Code, parsedError) c.Abort() } } }</code>
이 미들웨어에서 감지된 오류는 appError 유형으로 구문 분석되어 JSON 응답으로 반환됩니다.
핸들러에서 오류 보고
핸들러 함수 내에서 오류를 보고하려면 gin.Context.Error()를 사용합니다.
<code class="go">func fetchSingleHostGroup(c *gin.Context) { hostgroupID := c.Param("id") hostGroupRes, err := getHostGroupResource(hostgroupID) if err != nil { c.Error(err) return } c.JSON(http.StatusOK, *hostGroupRes) }</code>
이점
이 접근 방식은 여러 가지 이점을 제공합니다.
추가 리소스
자세한 정보와 대체 솔루션은 다음을 참조하세요. 다음 리소스에:
위 내용은 Gin으로 더 나은 오류 처리를 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!