Heim  >  Artikel  >  Backend-Entwicklung  >  Verwendung von Golang-Panik

Verwendung von Golang-Panik

WBOY
WBOYOriginal
2023-05-27 17:05:40899Durchsuche

Golang ist eine effiziente, gleichzeitige und prägnante Entwicklungssprache mit guter Lesbarkeit und Wartbarkeit. Manchmal treten jedoch selbst in einer solchen Sprache unerwartete Fehler im Code auf, z. B.: Array außerhalb der Grenzen, Nullzeiger oder sogar Systemabsturz usw. Um mit diesen Problemen umzugehen, bietet Go eine einfache Verarbeitungsmethode: Panik.

1. Was ist Panik?
Panic ist eine integrierte Funktion, die anzeigt, dass im Programm ein nicht behebbarer Fehler aufgetreten ist. Wenn die Panic-Funktion aufgerufen wird, stoppt das Programm den aktuellen Fluss und gibt einen Fehler aus. Anschließend stoppt es die Ausführung und beendet den Aufrufstapel.

2. Wie nutzt man Panik?
Panic ist einfach zu bedienen. Geben Sie den Fehler einfach direkt über die Funktion panic() aus. Zum Beispiel: panic() 函数直接抛出错误即可。例如:

func app() {
    if err := someFunction(); err != nil{
        log.Printf("operation failed, error - %s", err.Error())
        panic(err)
    }
    // 其他代码
}

如果 someFunction() 发生了错误,那么应用程序将会停止运行并抛出 panic err

func recoverDemo() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("recover from panic", r)
        }
    }()

    panic("something wrong")
    fmt.Println("After panic")
}

Wenn in someFunction() ein Fehler auftritt, stoppt die Anwendung die Ausführung und gibt eine panic err-Fehlermeldung aus.

Wenn im obigen Beispielcode ein Fehler in der Funktion auftritt, drucken wir die Details des Fehlers aus und übergeben sie an die Panic-Funktion. Dadurch erzwingt das Programm einen Stopp und gibt eine Fehlermeldung auf der Konsole aus. In diesem Fall werden spezifische Fehlerinformationen gedruckt und die Anwendung wird nicht mehr ausgeführt und führt keinen weiteren Code mehr aus. Zu diesem Zeitpunkt muss ein Fehlererkennungsmechanismus in den Code eingeführt werden, um die Richtigkeit der Anwendung sicherzustellen.

3. Die Beziehung zwischen Panik und Wiederherstellung

Wenn Panik im Code verwendet wird, wird der gesamte Code im Aufrufstapel nicht mehr ausgeführt, das Programm stoppt und es wird eine Fehlermeldung ausgegeben, was große Auswirkungen hat das Programm. Daher kann in der Go-Sprache die gepaarte Verwendung von „Panic“ und „Recover“ das Programm robuster machen.

Die Panikfunktion stoppt nur die Ausführung des Programms in der Funktion, die es direkt aufruft. Wenn dann im Aufrufstapel der Funktion die Ausnahme den oberen Rand des Aufrufstapels erreicht, wird die Ausführung des Programms beendet.

recover kann den Systembetrieb wiederherstellen und kann nur in der Verzögerungsfunktion aufgerufen werden. Die Funktion der Wiederherstellung besteht darin, Panikausnahmen abzufangen und den Systembetrieb wiederherzustellen.

Wenn vor dem Aufruf der Wiederherstellungsfunktion keine Panik auftritt, führt die Wiederherstellung zu nichts.

Sehen wir uns das folgende Beispiel an:

rrreee

In diesem Beispiel wird die Funktion nach dem Schlüsselwort defer ausgeführt, bevor die Funktion endet. Wenn während der Funktionsausführung eine Panik auftritt, wird die Wiederherstellungsmethode nach Erreichen des Verzögerungsausdrucks aktiviert. Es fängt die Panik ein und druckt die Nachricht aus, die wir ihm übermitteln.

In Golang wird „Recover“ normalerweise verwendet, um sich von einer Panik zu erholen. Normalerweise hoffen wir während des Entwicklungsprozesses, dass das Programm unter bestimmten Umständen nicht stoppt, selbst wenn in der Funktion eine Ausnahme auftritt, die es erfordert, dass wir zur Wiederherstellung die Wiederherstellungsfunktion verwenden.

4. Best Practices

Um Programmabstürze durch Panic-Aufrufe zu vermeiden, sollten wir unser Bestes geben, um diese Ausnahmen abzufangen und bei Bedarf die Wiederherstellung zu verwenden. In meiner Praxis folge ich bei der Verwendung von Panik normalerweise den folgenden Grundsätzen:


1 Halten Sie es einfach

Panik sollte im Code nicht missbraucht werden und nur verwendet werden, wenn ein wirklich nicht behebbarer Fehler auftritt. In anderen Fällen sollten Fehlerbehandlungsmechanismen verwendet werden.


2. Verwenden Sie die Verzögerungsfunktion richtig.

Normalerweise verwenden wir die Verzögerungsfunktion, um die Bereinigung der Ressourcennutzung durchzuführen. Bei der Verwendung von „Panic“ und „Recover“ ist der Ort der verzögerten Ausführung jedoch sehr wichtig. Rufen Sie „recover“ in der Defer-Funktion auf, um Panikausnahmen zu erfassen und zu behandeln.


3. Standardfehler verwenden

Der Standardfehlermechanismus in Golang ist sehr nützlich. Wenn ein Fehler auftritt, sollten wir eine Fehlertypvariable verwenden, um Fehlerinformationen zu übergeben, und feststellen, ob ein Fehler auftritt, indem wir bestimmen, ob die Variable Null ist. 🎜

Das obige ist der detaillierte Inhalt vonVerwendung von Golang-Panik. 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
Vorheriger Artikel:Ist Golang reif?Nächster Artikel:Ist Golang reif?