`panic` verstehen
Teil des Abschnitts Logik & Ablauf der GO-Journey von Coddy — Lektion 42 von 68.
In Go ist panic eine integrierte Funktion, die für wirklich außergewöhnliche Situationen verwendet wird, in denen Ihr Programm auf einen nicht behebbaren Fehler stößt und sofort beendet werden muss. Im Gegensatz zu regulären Fehlern, die Sie ordnungsgemäß behandeln, ist panic für katastrophale Ausfälle reserviert, die darauf hindeuten, dass etwas mit der Logik oder der Umgebung Ihres Programms grundlegend nicht stimmt.
Wenn panic aufgerufen wird, stoppt es sofort die normale Ausführung der aktuellen Funktion und beginnt mit dem Abbauen des Aufrufstapels (Unwinding). Dies unterscheidet es stark vom typischen Go-Ansatz, Fehler zurückzugeben, die vom aufrufenden Code behandelt werden können.
In idiomatischem Go wird panic selten verwendet. Die Go-Community bevorzugt ausdrücklich die explizite Fehlerbehandlung durch Rückgabewerte gegenüber einer auf Panic basierenden Fehlerbehandlung. Sie könnten auf panic in Situationen stoßen, wie beim Zugriff auf ein Array außerhalb der Grenzen, beim Dereferenzieren eines Nil-Pointers oder wenn eine Bibliothek einen unmöglichen Zustand erkennt, der auf einen Programmierfehler hindeutet.
Die meisten Go-Programme sollten Fehler ordnungsgemäß unter Verwendung der Standard-Error-Schnittstelle behandeln, die Sie kennengelernt haben. panic sollte nur in Betracht gezogen werden, wenn es wirklich keinen vernünftigen Weg gibt, wie Ihr Programm den Betrieb fortsetzen kann.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Spickzettel
In Go ist panic eine eingebaute Funktion für nicht behebbare Fehler, die die Programmausführung sofort stoppt:
panic("something went terribly wrong")Wenn panic aufgerufen wird, stoppt es die aktuelle Funktion und baut den Call-Stack ab (Unwinding). Verwenden Sie panic sparsam – nur bei katastrophalen Fehlern, bei denen das Programm nicht fortgesetzt werden kann. Go bevorzugt die explizite Fehlerbehandlung durch Rückgabewerte gegenüber einer Panic-basierten Fehlerbehandlung.
Häufige Panic-Situationen sind Array-Zugriffe außerhalb der Grenzen (out-of-bounds), Nil-Pointer-Dereferenzierungen oder unmögliche Programmzustände, die auf Bugs hinweisen.
Probier es selbst
Diese Lektion enthält keine Programmieraufgabe.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Fortgeschrittener Kontrollfluss
Switch mit `fallthrough`Abbrechen von verschachtelten SchleifenFortsetzen einer bestimmten SchleifeDie `goto`-AnweisungZusammenfassung – Fortgeschrittene Schleifensteuerung4Projekt: Einfache Aufgabenliste
Projekt-SetupEine Aufgabe hinzufügen7Fehlerbehandlung im Detail
Benutzerdefinierte FehlertypenFehler-Wrapping mit `%w`Unwrapping mit `errors.Is`Unwrapping mit `errors.As``panic` verstehen`recover` verwendenZusammenfassung – Sichere Division2Structs und Methoden
Methoden für Structs definierenValue ReceiverPointer ReceiverReceiver auswählenMethoden vs. FunktionenZusammenfassung – Struct-Verhalten5Maps im Detail
Maps von StructsPointer als Map-WertePrüfen auf Nil-MapsMaps vergleichenZusammenfassung – Wortfrequenz-Zähler8Projekt: Einfache Bestandsverwaltung
ProjektübersichtLagerbestand prüfen11Abschlussherausforderungen
Einfache KontaktlisteEinfacher Zahlen-ValidatorSammler für eindeutige Elemente3Interfaces (Die Grundlagen)
Was ist ein Interface?Ein Interface definierenEin Interface implementierenInterface-Typen verwendenLeeres InterfaceType AssertionsType SwitchZusammenfassung – Formen und Verhalten