Čtenáři jako vy pomáhají podporovat MUO. Když provedete nákup pomocí odkazů na našich stránkách, můžeme získat provizi přidružené společnosti. Přečtěte si více.

Zpracování chyb je jednou z častých operací v cyklu vývoje softwaru. Je to důležitý aspekt dobrého programování. Go má jednoduchý a snadno použitelný přístup s vestavěným mechanismem pro zpracování chyb. Je založen na vracení chyb z funkcí a metod, což vám umožňuje soustředit se na funkčnost kódu, která je intuitivní a snadno čitelná.

Chyby v Go zpracováváte explicitně, což má za následek solidní rámec pro zpětnou vazbu s možností konzistentně implementovat logiku opakování. The chyby balíček poskytuje další funkce pro zpracování chyb.

Balíček chyb

Balíček chyb je jedním z balíčků standardní knihovny Go. Balíček poskytuje jednoduchá primitiva a funkce pro zpracování chyb pro konzistentní vytváření a manipulaci s chybami v celém kódu Go.

Balíček poskytuje Nový funkce pro vytváření chyb pomocí vlastních chybových zpráv, které můžete použít stejným způsobem jako jakýkoli vestavěný typ chyby, jako je např

instagram viewer
nula a Chyba metoda chyba rozhraní.

The chyby package také poskytuje funkce pro zalamování a rozbalování chyb, což je metoda pro typová tvrzení o chybách.

Můžete importovat chyby balíček s klíčovým slovem import. Jednoduše zadejte název balíčku v seznamu importů.

import"chyby"

Chytání a zpracování chyb v Go

Znalost základního zpracování chyb v Go pokládá základ pro pochopení chyby balík. Funkce a metody vracejí chyby, které jsou doprovázeny zdrojem.

Zde je příklad zpracování chyb z operace otevření souboru s vestavěným os balík.

balík hlavní

import (
"fmt"
"os"
)

funchlavní() {
soubor, chyba := os. OTEVŘENO("název souboru.txt")

-li chyba!= nula {
fmt. Println (chyba)
}

// ...
}

The OTEVŘENO metoda os balíček je užitečný, když práci s textovými soubory v Go. Otevře soubor a vrátí instanci otevřeného souboru a soubor chyba.

Chybová hodnota může být nula typ, indikující žádné chyby. Můžete však zkontrolovat případ, kdy není nula, a zpracovat chybu, pokud je přítomna. Ve výše uvedeném případě blok if vypíše chybu.

Můžete přistupovat k Chyba metoda chyby k získání dalších informací o chybě (obvykle popis).

-li chyba!= nula {
fmt. Println (chyba. Chyba())
}

Pokud například soubor neexistuje, zobrazí se chybová zpráva, která vypadá asi takto:

Vytváření chyb v Go

Můžete vytvářet chyby pomocí Nový metoda chyby balík. Tato metoda přijímá řetězcovou zprávu a vrací zjištěné chyby.

import"chyby"

funchlavní() {
chyba := chyby. Nový("něco se pokazilo")

-li chyba!= nula {
// kód zpracování chyb je zde
}
}

The hlavní funkce vytvoří novou chybu a zpracuje případné chyby z vytvoření chyby pomocí an -li prohlášení.

V Go můžete také definovat vlastní chyby. Konvenční metoda používá strukturu a chybovou funkci k implementaci struktury na základě funkčnosti chyby.

balík hlavní

import"fmt"

typ customError strukturovat {
info tětiva
}

funchlavní() {
// příklad konkretizace struktury
err := customError{
info: "Něco se pokazilo!",
}

// výstup instance struct
fmt. Println (chyba)
}

The customError struct je plán chyby a info pole řetězec bude obsahovat chybovou zprávu.

Vaše chybové funkce mohou implementovat customError struct a vrátí chybový řetězec.

func(ce customError)Chyba()tětiva {
vrátit se fmt. Sprintf("Došlo k vlastní chybě: %v", ce.info)
}

The Chyba metoda customError struct vrátí řetězec pomocí metodu formátování Sprintf balíčku fmt.

Chyby zabalování a rozbalování v Go

K chybám můžete přidat další kontextové informace jejich zabalením. Zabalené chyby budete primárně používat k vytvoření jasných chybových zpráv pro přesnost ladění.

Můžete použít Chyba metoda fmt balíček, který poskytuje funkce pro formátování chybových zpráv pro zalamování chyb. The Chyba metoda přijímá řetězec a sloveso formátování řetězce a chybu a vrací zabalenou chybu.

import (
"fmt"
"os"
)

funchlavní() {
_, chyba := os. OTEVŘENO("název souboru.txt")

-li chyba!= nula {
zabalenéErr := fmt. Chyba("Chyba při otevírání souboru: %v", chyba)
fmt. Println (wrappedErr)
}
}

The hlavní funkce otevře soubor s os balíčky OTEVŘENO a zabalí chybu do metody Errorf z fmt balík. Poté odešle zabalenou chybu do konzoly.

Zabalené chyby ve svých programech můžete rozbalit pomocí Rozbalit metoda chyby balík. The Rozbalit metoda převezme zabalenou chybu a vrátí rozbalenou chybu.

import (
"fmt"
"os"
"chyby"
)

funchlavní() {
_, chyba := os. OTEVŘENO("název souboru.txt")

-li chyba!= nula {
zabalenéErr := fmt. Chyba("Chyba při otevírání souboru: %v", chyba)
unwrappedErr := chyby. Rozbalit (wrappedErr)
fmt. Println (unwrappedErr)
}
}

The hlavní funkce zabalí chybu z operace otevření souboru a rozbalenoErr proměnná obsahuje rozbalenou chybu.

Zaznamenávejte své chybové zprávy pomocí těchto protokolovacích balíčků třetích stran

Budete muset zaznamenat některé chyby pro pozdější kontroly, ladění a další operace během procesu vývoje aplikace. Můžete použít zap balíček od Uber, Logrus, Zerolog a balíčky Log15 pro rychlé a strukturované protokolování.