Go는 내장 타입으로 error 라는 인터페이스 타입을 갖습니다. error 인터페이스는 Error() 라는 하나의 메서드만 갖습니다. 이 개발자는 이 인터페이스를 상속받아서 커스텀 에러 타입을 구현할 수 있습니다.
package main
import (
"log"
"os"
)
type error interface {
Error() string
}
func main() {
f, err := os.Open("C:\\temp\\1.txt")
if err != nil {
println("에러다")
log.Fatal(err.Error())
}
println(f.Name())
} |
또한 에러의 타입별로 switch 문을 사용하여 구별할 수 있습니다.
package main
import (
"log"
"os"
)
func errorFunc() (string, error) {
f, err := os.Open("C:\\temp\\1.txt")
if err != nil {
return "", err
}
return f.Name(), err
}
func main() {
_, err := errorFunc()
switch err.(type) {
default: // no error
println("ok")
case error:
println("에러다")
log.Fatal(err.Error())
}
}
|