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
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 |