본문 바로가기
개발/Go

[Go] 기초 - Error

by devhooney 2022. 7. 31.
728x90

1. 에러

- Go는 error 라는 interface 타입을 갖고 있다.

- Go에서 에러가 발생한 경우 error 인터페이스를 통해서 주고 받는다.

type error interface {
    Error() string
}

 

728x90

 

2. Go 에러처리

package main
 
import (
    "log"
    "os"
)
 
func main() {
    f, err := os.Open("C:\\temp\\1.txt")
    if err != nil {
        log.Fatal(err.Error())
    }
    println(f.Name())
}

- Go 함수가 결과와 에러를 함께 리턴한다면, 이 에러가 nil 인지를 체크해서 에러가 없는지를 체크할 수 있다.

- 에러가 nil이 아니면 에러 로그를 남기는 로직.

- 또 다른 에러처리는 error의 Type을 체크해서 에러 타입별로 별도의 에러 처리를 하는 방식이다.

_, err := otherFunc()
switch err.(type) {
default: // no error
    println("ok")
case MyError:
    log.Print("Log my error")
case error:
    log.Fatal(err.Error())
}

- err의 타입으로 각각 다르게 처리를 할 수 있다.

- 나는 첫번째 방식을 주로 사용했다. 에러 처리가 너무 귀찮았다. Go 에러처리 하다가 Java나 Javascript 에러 처리를 하면 너무 편하다는 생각이 들었다.

 

 

참고 사이트

http://golang.site/go/article/19-Go-%EC%97%90%EB%9F%AC%EC%B2%98%EB%A6%AC

 

예제로 배우는 Go 프로그래밍 - Go 에러처리

1. Go 에러 Go는 내장 타입으로 error 라는 interface 타입을 갖는다. Go 에러는 이 error 인터페이스를 통해서 주고 받게 되는데, 이 interface는 다음과 같은 하나의 메서드를 갖는다. 개발자는 이 인터페

golang.site

 

728x90

'개발 > Go' 카테고리의 다른 글

[Go] 기초 - 루틴(goroutine)  (0) 2022.08.02
[Go] 기초 - defer&panic  (0) 2022.08.01
[Go] 기초 - 인터페이스  (0) 2022.07.30
[Go] 기초 - 메소드  (1) 2022.07.27
[Go] 기초 - 구조체(Struct)  (0) 2022.07.27