37 lines
557 B
Go
37 lines
557 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
type ErrorFromAnotherPackage struct{}
|
|
|
|
func (e ErrorFromAnotherPackage) Error() string {
|
|
return "error"
|
|
}
|
|
|
|
func (e ErrorFromAnotherPackage) Path() string {
|
|
return "path"
|
|
}
|
|
|
|
type FSError interface {
|
|
Path() string
|
|
}
|
|
|
|
func IsFSError(err error) bool {
|
|
_, ok := err.(FSError)
|
|
return ok
|
|
}
|
|
|
|
func getErrorFromAnotherPackage() error {
|
|
return ErrorFromAnotherPackage{}
|
|
//return fmt.Errorf("%w", ErrorFromAnotherPackage{})
|
|
}
|
|
|
|
func main() {
|
|
err := getErrorFromAnotherPackage()
|
|
if IsFSError(err) {
|
|
fmt.Println("FSError")
|
|
}
|
|
}
|