Heim >Backend-Entwicklung >Golang >Detaillierte Erklärung der Verwendung von Golang-Panik

Detaillierte Erklärung der Verwendung von Golang-Panik

藏色散人
藏色散人nach vorne
2020-09-28 13:20:032573Durchsuche

Die Spalte Golang-Tutorial unten führt Sie in die detaillierte Erklärung der Verwendung von Golang-Panik ein. Ich hoffe, dass es Freunden in Not hilfreich sein wird!

Detaillierte Erklärung der Verwendung von Golang-Panik

Go-Sprache strebt nach Einfachheit und Eleganz, daher unterstützt die Go-Sprache keine traditionellen Try...Catch...finally-Ausnahmen, da die Designer der Go-Sprache glauben, dass das Mischen von Ausnahmen mit Kontrollstrukturen den Code leicht erstellen wird wird verwirrend.

Denn Entwickler können Ausnahmen leicht missbrauchen und sogar eine Ausnahme für einen kleinen Fehler auslösen. In der Go-Sprache werden mehrere Werte verwendet, um Fehler zurückzugeben. Verwenden Sie Ausnahmen nicht, um Fehler zu ersetzen, geschweige denn, um den Prozess zu steuern. In seltenen Fällen, also wenn eine echte Ausnahme auftritt (z. B. wenn der Divisor 0 ist). Verwenden Sie nur die in Go eingeführte Ausnahmebehandlung: defer, panic, restart.

Die Verwendungsszenarien dieser Ausnahmen können einfach beschrieben werden: Go kann eine Panikausnahme auslösen, die Ausnahme dann durch Wiederherstellen in der Verzögerung erfassen und sie dann normal behandeln.

package main

import "fmt"func main(){

    defer func(){ // 必须要先声明defer,否则不能捕获到panic异常
        fmt.Println("c")        if err:=recover();err!=nil{
            fmt.Println(err) // 这里的err其实就是panic传入的内容,55        }
        fmt.Println("d")
    }()

    f()
}

func f(){
    fmt.Println("a")
    panic(55)
    fmt.Println("b")
    fmt.Println("f")
}


输出结果:

a
c
d
exit code 0, process exited normally.

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung der Verwendung von Golang-Panik. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen