Sobes.tech
Junior — Middle

Erklären Sie das Konzept des Evakuierungsmechanismus in der Programmiersprache Go und seine Zweckbestimmung

sobes.tech KI

Antwort von AI

In der Programmiersprache Go wird der Evakuierungsmechanismus (panic und recover) verwendet, um unerwartete Fehler und Ausnahmebedingungen während der Programmausführung zu behandeln.

  • panic ist ein Aufruf, der die normale Programmausführung unterbricht, eine Kette von defer-Funktionen auslöst und das Programm letztendlich beendet, wenn panic nicht behandelt wird.
  • recover ist eine Funktion, die innerhalb einer defer-Funktion aufgerufen werden kann, um die Panik aufzufangen und das Programm am Beenden zu hindern.

Zweck des Mechanismus:

  • Ermöglicht die Behandlung kritischer Fehler, die nicht auf normale Weise oder unpraktisch behandelt werden können.
  • Bietet die Möglichkeit, sich nach einem Fehler zu erholen und die Programmausführung fortzusetzen.

Beispiel:

func safeDivide(a, b int) int {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Wiederherstellung nach Panik:", r)
        }
    }()
    if b == 0 {
        panic("Division durch Null")
    }
    return a / b
}

Hier wird bei dem Versuch, durch Null zu dividieren, panic aufgerufen, aber dank recover beendet das Programm nicht abrupt, und der Fehler wird behandelt.