Wrap and Unwrap Errors in Go
Wrap errors with fmt.Errorf %w and inspect with errors.Is / As.
Author:
chris
// Language: Go
package main
import (
"errors"
"fmt"
"os"
)
func loadConfig(path string) error {
if _, err := os.Stat(path); err != nil {
return fmt.Errorf("loadConfig %q: %w", path, err)
}
return nil
}
func main() {
err := loadConfig("/no/such/file")
if errors.Is(err, os.ErrNotExist) {
fmt.Println("config missing:", err)
}
}