English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Golang 기본 강의

Golang 제어 문장

Golang 함수 & 메서드

Golang 구조체

Golang 슬라이스 & 배열

Golang 문자열(String)

Golang 포인터

Golang 인터페이스

Golang 병행

Golang 오류(Error)

Golang 다른杂项

Go 언어 Error(에러 처리)

Go는 Java의 try와 같은 것을 가지고 있지 않습니다. / catch와 같은 예외 메커니즘을 사용할 수 없습니다. Go에서는 예외를 던지지 않을 수 있습니다.

Go는 다른 메커니즘을 사용하여, 즉지연 패닉과 복구 메커니즘.

Go는 함수와 메서드의 간단한 오류를 처리하기 위해 오류 객체를 반환합니다. 오류 객체는 유일하거나 마지막 반환 값일 수 있습니다. 함수에 오류가 없으면 오류 객체는 nil입니다.

오류를 받은与否에 관계없이 항상 호출 문장에서 오류를 확인해야 합니다.

오류를 무시하지 마세요. 그것은 프로그램이 충돌할 수 있습니다.

Go가 오류 상황을 검출하고 보고하는 방법은

  • 오류를 유발할 수 있는 함수는 두 개의 변수를 반환합니다: 값과 오류 코드, 성공 시 nil; 오류 조건 시 == nil.

  • 함수 호출 후 오류를 확인합니다. 오류가 발생하면 (if error != nil) 실제 기능의 실행을 중지합니다. 필요할 때 전체 프로그램을 중지합니다.

Go는 предопределенный интерфейс ошибки

type error interface {
    Error() string
}	

오류 패키지의 error.New를 사용하여 오류 유형을 정의하고 적절한 오류 메시지를 제공할 수 있습니다. 예를 들어:

err := errors.New("math" - 부수의 제곱근")

에러 예제

package main
import "errors"
import "fmt"
import "math"
func Sqrt(value float64) (float64, error) {
   if (value < 0) {
      return 0, errors.New("Math: 부수의 제곱근")
   }
   return math.Sqrt(value), nil
}
func main() {
   result, err := Sqrt(-64)
   if err != nil {
      fmt.Println(err)
   } else {
      fmt.Println(result)
   }
   result, err = Sqrt(64)
   if err != nil {
      fmt.Println(err)
   } else {
      fmt.Println(result)
   }
}

출력:

Math: 음수의 제곱근
8