ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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())
       }
    }
    


    댓글