에러 핸들링은 무결성의 한 부분으로 아주 중요한 부분이다.
에러 핸들링을 하지 않으면, 비정상적으로 종료될 수 있습니다.
Example
// Package provides ...
package main
import (
"errors"
"fmt"
)
func div(a, b int) (int, error) { // a와 b를 입력받고 error하고 new를 리턴한다.
if b == 0 {
return 0, errors.New("It can't be divied by zero") // errors를 리턴한다.
}
return a / b, nil // b가 0이 아닐 경우에는 erorr는 nil
}
func main() {
var (
x = 100
y = 0
)
v, err := div(x, y) // 100과 0을 funcion 매겨변수로 넘겨준다.
if err != nil {
fmt.Println(err.Error()) // nil이 아닐경우 에러를 출력합니다.
}
if err == nil {
fmt.Print(v)
}
}
errors.New - Document
package errors
// New returns an error that formats as the given text.
// Each call to New returns a distinct error value even if the text is identical.
func New(text string) error {
return &errorString{text}
}
// errorString is a trivial implementation of error.
type errorString struct {
s string
}
func (e *errorString) Error() string {
return e.s
}
errors.New를 생성하면 errorString struct를 반환합니다.
'언어 > GO' 카테고리의 다른 글
golang - 테트리스 (1) 편 (0) | 2022.01.19 |
---|