func 패닉(인터페이스{}) 및 func 복구() 인터페이스{}는 Golang에서 오류 처리에 사용되는 두 가지 함수입니다.
panic의 기능은 오류 메시지를 표시하는 것입니다. 매개변수 유형을 보면 모든 유형의 오류 메시지를 표시할 수 있음을 알 수 있습니다. (추천 학습: go)
함수 실행 도중 어딘가에서 패닉이 호출되면 바로 오류 메시지가 발생하고 함수의 정상적인 실행 프로세스가 종료되지만 패닉 이전에 정의된 defer 문 함수는 순서대로 실행됩니다. 고루틴은 그 후 즉시 실행을 중지합니다.
recover()는 패닉 정보를 캡처하는 데 사용됩니다.
recover는 패닉 전에 defer 문에서 정의되어야 합니다. 이 경우 패닉이 발생하면 고루틴은 단순히 종료되지 않고 이전에 정의된 defer 문을 실행합니다.
직접 설정한 패닉 오류 잡기:
package main import "fmt" import "math" func foo(a int) { defer fmt.Println("foo退出来了") defer func() { if r := recover(); r != nil { fmt.Printf("捕获到的错误:%s\n", r) } }() if a < 0 { panic("必须输入大于0的数") } fmt.Println("该数的方根为:", math.Sqrt(float64(a))) } func main() { var a int a = 10 fmt.Printf("a=%d\n", a) foo(a) var b int b = -10 fmt.Printf("b=%d\n", b) foo(b) fmt.Println("该goroutine还可以执行") } // /////////// a=10 该数的方根为: 3.1622776601683795 foo退出来了 b=-10 捕获到的错误:必须输入大于0的数 foo退出来了 该goroutine还可以执行 Process finished with exit code 0
위 내용은 golang에서 오류를 잡는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!