지노윈 2024. 11. 14. 10:52
반응형

%w

%w는 주로 fmt.Errorf 함수에서 오류(wrapping errors)를 감쌀 때 사용됩니다.

Go 1.13에서 도입된 기능으로, 새로운 오류를 생성하면서 기존 오류를 감싸기(wrap) 위해 사용합니다.

%w는 fmt.Printf와 같은 함수에서 직접적으로 사용되지 않으며, 주로 fmt.Errorf와 함께 사용됩니다.

 

package main

import (
    "errors"
    "fmt"
)

func main() {
    originalErr := errors.New("original error")
    wrappedErr := fmt.Errorf("new context: %w", originalErr)
    fmt.Println(wrappedErr)  // new context: original error
    
    // 원래 오류를 감싸는지 확인
    if errors.Is(wrappedErr, originalErr) {
        fmt.Println("The wrapped error contains the original error")
    }
}

 

%w는 오류 감싸기(wrapping errors) 용도로 사용됩니다. fmt.Printf에서 %w는 직접 사용할 수 없고, fmt.Errorf와 함께 오류를 처리할 때 주로 사용됩니다.