[go] 에러 타입 확인 및 타입 어설션
Go 언어에서는 에러를 다루기 위한 내장된 인터페이스인 error
인터페이스를 제공합니다. 이 인터페이스는 Error()
메서드를 통해 에러의 메시지를 반환합니다.
아래 예제는 에러 타입을 확인하고 해당 타입에 따라 다른 작업을 수행하는 방법을 보여줍니다.
package main
import (
"errors"
"fmt"
)
func main() {
err := someFunction()
switch e := err.(type) {
case CustomError:
fmt.Println("Custom error:", e.Error())
case nil:
fmt.Println("No error")
default:
fmt.Println("Unknown error:", err.Error())
}
}
type CustomError struct {
message string
}
func (e CustomError) Error() string {
return e.message
}
func someFunction() error {
return CustomError{"Something went wrong"}
}
이 예제에서 someFunction
은 CustomError
를 반환하도록 정의되어 있습니다. main
함수에서는 someFunction
의 결과를 err
변수에 할당한 다음, switch
문을 사용하여 에러의 타입을 확인하고 해당 내용을 출력하고 있습니다.
Go 언어에서는 switch
문을 활용하여 동적인 타입 확인을 할 수 있으며, 이를 활용하여 에러 핸들링을 보다 유연하게 처리할 수 있습니다.
에러 타입 확인과 함께, “타입 어설션”을 사용하여 특정한 타입으로 변환할 수도 있습니다. “타입 어설션”을 통해 특정 인터페이스를 구현한 타입으로의 변환을 지원하여, 해당 인터페이스가 가진 메서드를 활용할 수 있게 합니다.
Go 언어에서 에러 핸들링 및 타입 어설션에 대한 보다 상세한 내용은 공식 문서를 참고할 수 있습니다.
Errors - The Go Programming Language