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