Wie ermittelt man einen bestimmten Fehlerzustand aus db.Exec(...) in Go?
Bei einem Versuch, einen Postgres zu löschen Wenn Sie eine Datenbank mithilfe des lib/pq-Treibers erstellen, kann es für Entwickler schwierig sein, zwischen Standardfehlern und „Datenbank existiert nicht“-Fehlern zu unterscheiden. Um diese Szenarien effektiv zu bewältigen, ist es wichtig, den vom Treiber bereitgestellten Fehlerbehandlungsmechanismus zu verstehen.
Das lib/pq-Paket gibt Fehler als *pq.Error-Strukturen zurück und bietet verschiedene Felder für eine detaillierte Fehlerprüfung. Um auf diese Felder zuzugreifen, verwenden Sie den folgenden Code:
<code class="go">if err, ok := err.(*pq.Error); ok { // Manipulate err.Code, err.Message, etc. }</code>
*pq.Error stellt die folgenden Felder bereit:
<code class="go">type Error struct { Severity string Code ErrorCode Message string Detail string Hint string Position string InternalPosition string InternalQuery string Where string Schema string Table string Column string DataTypeName string Constraint string File string Line string Routine string }</code>
Jedes Feld stellt einen bestimmten Fehleraspekt dar, z. B. Fehlerschwere, Code, Nachricht und zugehörige Datenbankobjekte. Für den speziellen Fall von „Datenbank existiert nicht“-Fehlern konsultieren Sie die Postgres-Dokumentation, um den entsprechenden Fehlercode zu ermitteln und bei Bedarf Vergleiche mit err.Code durchzuführen: https://www.postgresql.org/docs/current/errcodes-appendix .html
Das obige ist der detaillierte Inhalt vonWie identifiziere ich einen Fehler „Datenbank existiert nicht' mithilfe von „db.Exec(...)' in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!