[go] 에러 처리를 위한 커스텀 에러 타입 정의 방법

Go 언어에서는 에러는 내장 타입을 사용하여 처리되지만 때로는 커스텀 에러 타입을 정의하여 더 많은 정보를 제공하는 것이 유용합니다. 이런 경우에는 error 인터페이스를 구현하는 새로운 타입을 정의하는 것이 좋습니다.

커스텀 에러 타입 정의하기

package main

import (
	"fmt"
)

// CustomError 커스텀 에러 타입 정의
type CustomError struct {
	message string
	code    int
}

// Error 메서드를 구현하여 에러 메시지 반환
func (e *CustomError) Error() string {
	return fmt.Sprintf("Error: %s, Code: %d", e.message, e.code)
}

// NewCustomError 새로운 CustomError 생성하는 도우미 함수
func NewCustomError(message string, code int) error {
	return &CustomError{message, code}
}

// 사용 예시
func main() {
	err := NewCustomError("Something went wrong", 500)
	fmt.Println(err.Error())
}

위의 예시에서는 CustomError라는 새로운 타입을 정의하고, error 인터페이스를 구현하여 Error 메서드를 제공합니다. 또한 NewCustomError 함수를 사용하여 새로운 커스텀 에러를 생성하고 사용할 수 있습니다.

이제, 애플리케이션에서 보다 상세한 정보를 담고 있는 에러를 다루기 위해 커스텀 에러 타입을 정의하고 활용할 수 있습니다.

결론

Go 언어에서는 기본적으로 제공되는 에러 타입 외에도 커스텀 에러 타입을 정의하여 에러 처리에 유용하게 활용할 수 있습니다. 커스텀 에러 타입은 추가 정보를 제공하거나 특정한 유형의 에러를 나타내는 데 유용합니다.