English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Golang Grund教程

Golang Steuerrichtlinien

Golang Funktion & Methode

Golang Struktur

Golang Slice & Array

Golang Zeichenkette(String)

Golang Zeiger

Golang Schnittstelle

Golang Parallelität

Golang Ausnahme(Error)

Golang andere Artikel

Go Sprach-Fehler (Fehlerbehandlung)

Go hat kein wie Java try / catchartige Ausnahme-Mechanismen, wir können in Go keine Ausnahmen werfen.

Go verwendet ein anderes Mechanismus, das alsVerzögerte Panik und Wiederherstellungsmechanismus.

Go behandelt einfache Fehler durch das Zurückgeben eines Fehlerobjekts. Das Fehlerobjekt kann das einzige oder der letzte Rückgabewert sein. Wenn es im Funktionsaufruf keinen Fehler gibt, ist das Fehlerobjekt nil.

Wir sollten immer die Fehler in der Anrufklausel überprüfen, egal ob ein Fehler auftritt oder nicht.

Wir sollten niemals Fehler ignorieren, da sie zum Absturz des Programms führen können.

Die Methode zur Fehlererkennung und -berichterstattung in der Go-Sprache ist

  • Funktionen, die Fehler verursachen können, geben zwei Variablen zurück: einen Wert und einen Fehlercode, wenn erfolgreich,则为nil; wenn Fehlerbedingungen,则为== nil.

  • Überprüfen Sie nach der Funktion Aufruf auf Fehler. Wenn ein Fehler auftritt (if error != nil), stoppen Sie die Ausführung der tatsächlichen Funktion (oder den gesamten Programm, wenn erforderlich).

Go hat vorgegebene Fehlerinterface-Typen

type error interface {
    Error() string
}	

Wir können den Fehlerpaket mit error.New definieren, um einen Fehler Typ zu spezifizieren und eine angemessene Fehlermeldung bereitzustellen, z.B.:

err := errors.New("math - 负数的平方根")

Fehlerbeispiel

package main
import "errors"
import "fmt"
import "math"
func Sqrt(value float64) (float64, error) {
   if (value < 0) {
      return 0, errors.New("Math: 负数的平方根")
   }
   return math.Sqrt(value), nil
}
func main() {
   result, err := Sqrt(-64)
   if err != nil {
      fmt.Println(err)
   } else {
      fmt.Println(result)
   }
   result, err = Sqrt(64)
   if err != nil {
      fmt.Println(err)
   } else {
      fmt.Println(result)
   }
}

Ausgabe:

Math: Quadratwurzel von negativen Zahlen
8