func panic(interface{}) und func restart() interface{} sind zwei Funktionen, die zur Fehlerbehandlung in Golang verwendet werden.
Die Funktion von Panic besteht darin, eine Fehlermeldung auszulösen. Anhand des Parametertyps können Sie erkennen, dass jede Art von Fehlermeldung ausgegeben werden kann. (Empfohlenes Lernen: go)
Wenn während der Ausführung der Funktion irgendwo Panik ausgelöst wird, wird sofort eine Fehlermeldung ausgegeben und der normale Ausführungsprozess der Funktion wird ausgeführt beenden, aber die vor Panic in dieser Funktion definierten Defer-Anweisungen werden nacheinander ausgeführt. Die Goroutine stoppt unmittelbar danach die Ausführung.
recover() wird verwendet, um Panikinformationen zu erfassen.
Wiederherstellung muss in der Defer-Anweisung vor einer Panik definiert werden. Wenn in diesem Fall eine Panik ausgelöst wird, wird die Goroutine nicht einfach beendet, sondern führt die zuvor definierte Defer-Anweisung aus.
Fangen Sie selbst festgelegte Panikfehler:
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
Das obige ist der detaillierte Inhalt vonSo erkennen Sie Fehler in Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!