Go fmt.Errorf()

1 개요[ | ]

Go fmt.Errorf()
Go
Copy
package main

import (
	"fmt"
)

func main() {
	var result int
	var err error

	result, err = incr(42)
	if err != nil {
		fmt.Println("incr err:", err)
		return
	}
	fmt.Println(result) // 43

	result, err = incr(6)
	if err != nil {
		fmt.Println("incr err:", err) // incr err: cannot work with 6
		return
	}
	fmt.Println(result)
}

func incr(x int) (int, error) {
	if x != 42 {
		return -1, fmt.Errorf("cannot work with %d", x)
	}
	x++
	return x, nil
}
Loading

2 실험: nil을 wrap하면?[ | ]

Go
Copy
package main

import "fmt"

func main() {
	var err error
	fmt.Println(err) // <nil>

	err = fmt.Errorf("new error: %w", err)
	fmt.Println(err) // new error: %!w(<nil>)
}
Loading

3 같이 보기[ | ]