Heim >Backend-Entwicklung >Golang >So erkennen Sie Fehler in Golang

So erkennen Sie Fehler in Golang

(*-*)浩
(*-*)浩Original
2019-12-14 13:19:023439Durchsuche

So erkennen Sie Fehler in Golang

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn