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())
   }
}


'언어 > Golang' 카테고리의 다른 글

[Golang] 에러  (0) 2020.02.23
[Golang] package 관리, 선언하기  (0) 2020.02.16
[Golang] http 모듈 사용하기  (0) 2020.02.16
[Golang] map  (0) 2020.02.09
[Golang] 배열 (array) & 슬라이스 (slice)  (0) 2020.02.09
[Golang] 함수 (function)  (0) 2020.02.09
[GO] 데이터 타입 & 연산자  (0) 2020.02.09