-
[Golang] 에러언어/Golang 2020. 2. 23. 20:12
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()) } }