Spracovanie chýb je jednou z častých operácií v cykle vývoja softvéru. Je to dôležitý aspekt dobrého programovania. Go má jednoduchý a ľahko použiteľný prístup so vstavaným mechanizmom na spracovanie chýb. Je založená na vracaní chýb z funkcií a metód, čo vám umožňuje zamerať sa na funkčnosť kódu, ktorá je intuitívna a ľahko čitateľná.
Chyby v Go riešite explicitne, výsledkom čoho je solídny rámec pre spätnú väzbu so schopnosťou konzistentne implementovať logiku opakovania. The chyby balík poskytuje ďalšie funkcie na riešenie chýb.
Balík chýb
Balík chýb je jedným z balíkov v štandardnej knižnici Go. Balík poskytuje jednoduché primitívy a funkcie na odstraňovanie chýb na konzistentné vytváranie a manipuláciu s chybami v kóde Go.
Balíček poskytuje Nový funkcia na vytváranie chýb pomocou vlastných chybových hlásení, ktoré môžete použiť rovnakým spôsobom ako ktorýkoľvek vstavaný typ chyby, ako napr nula a Chyba metóda chyba rozhranie.
The chyby package tiež poskytuje funkcie na zalamovanie a rozbaľovanie chýb, čo je metóda pre typové tvrdenia o chybách.
Môžete importovať chyby balík s kľúčovým slovom import. Stačí zadať názov balíka v zozname dovozov.
importovať"chyby"
Zachytenie a riešenie chýb v Go
Znalosť základného spracovania chýb v Go kladie základ pre pochopenie chyby balík. Funkcie a metódy vracajú chyby, ktoré sú sprevádzané zdrojom.
Tu je príklad spracovania chýb pri operácii otvárania súboru so vstavaným os balík.
balík Hlavná
importovať (
"fmt"
"os"
)funcHlavná() {
súbor, chyba := os. OTVORENÉ("názov súboru.txt")ak chyba!= nula {
fmt. Println (chyba)
}
// ...
}
The OTVORENÉ metóda os balík je užitočný, keď prácu s textovými súbormi v Go. Otvorí súbor a vráti inštanciu otvoreného súboru a súbor chyba.
Chybová hodnota môže byť nula typ, ktorý neuvádza žiadne chyby. Môžete však skontrolovať, či sa nevyskytuje nulový prípad, a vyriešiť chybu, ak je prítomná. Vo vyššie uvedenom prípade blok if vypíše chybu.
Môžete pristupovať k Chyba metóda chyby na získanie ďalších informácií o chybe (zvyčajne popis).
ak chyba!= nula {
fmt. Println (chyba. Chyba())
}
Ak napríklad súbor neexistuje, zobrazí sa chybové hlásenie, ktoré vyzerá približne takto:
Vytváranie chýb v Go
Môžete vytvárať chyby pomocou Nový metóda chyby balík. Táto metóda preberá reťazcovú správu a vracia zistené chyby.
importovať"chyby"
funcHlavná() {
chyba := chyby. Nový("niečo sa pokazilo")
ak chyba!= nula {
// tu je kód spracovania chýb
}
}
The Hlavná funkcia vytvorí novú chybu a spracuje možné chyby z vytvorenia chyby pomocou an ak vyhlásenie.
V Go môžete tiež definovať vlastné chyby. Konvenčná metóda používa štruktúru a chybovú funkciu na implementáciu štruktúry na základe funkčnosti chyby.
balík Hlavná
importovať"fmt"
typu customError štrukturovať {
Info reťazec
}funcHlavná() {
// príklad inštancie štruktúry
err := customError{
Info: "Niečo sa pokazilo!",
}
// výstup inštancie štruktúry
fmt. Println (chyba)
}
The customError struct je plán chyby a Info reťazec bude obsahovať chybové hlásenie.
Vaše chybové funkcie môžu implementovať customError struct a vráti chybový reťazec.
func(ce customError)Chyba()reťazec {
vrátiť fmt. Sprintf("Vyskytla sa vlastná chyba: %v", ce.info)
}
The Chyba metóda customError struct vráti reťazec pomocou metóda formátovania Sprintf balíka fmt.
Chyby balenia a rozbaľovania v aplikácii Go
K chybám môžete pridať ďalšie kontextové informácie tak, že ich zabalíte. Zabalené chyby budete primárne používať na vytvorenie jasných chybových hlásení pre presnosť ladenia.
Môžete použiť Chyba metóda fmt balík, ktorý poskytuje funkcie na formátovanie chybových správ na zalamovanie chýb. The Chyba metóda prevezme reťazec a sloveso formátovania reťazca a chybu a vráti zabalenú chybu.
importovať (
"fmt"
"os"
)funcHlavná() {
_, chyba := os. OTVORENÉ("názov súboru.txt")
ak chyba!= nula {
zabalenéErr := fmt. Errorf("Chyba pri otváraní súboru: %v", chyba)
fmt. Println (wrappedErr)
}
}
The Hlavná funkcia otvorí súbor s os balíkov OTVORENÉ a zabalí chybu pomocou metódy Errorf fmt balík. Potom odošle zabalenú chybu do konzoly.
Zabalené chyby vo svojich programoch môžete rozbaliť pomocou Rozbaliť metóda chyby balík. The Rozbaliť metóda vezme zabalenú chybu a vráti rozbalenú chybu.
importovať (
"fmt"
"os"
"chyby"
)funcHlavná() {
_, chyba := os. OTVORENÉ("názov súboru.txt")
ak chyba!= nula {
zabalenéErr := fmt. Errorf("Chyba pri otváraní súboru: %v", chyba)
unwrappedErr := chyby. Rozbaliť (wrappedErr)
fmt. Println (unwrappedErr)
}
}
The Hlavná funkcia zabalí chybu z operácie otvorenia súboru a unwrappedErr premenná obsahuje rozbalenú chybu.
Zaznamenajte svoje chybové hlásenia pomocou týchto protokolovacích balíkov tretích strán
Počas procesu vývoja aplikácie budete musieť zaznamenať niektoré chyby pre neskoršie kontroly, ladenie a iné operácie. Môžete použiť zap balík od balíkov Uber, Logrus, Zerolog a Log15 pre rýchle a štruktúrované protokolovanie.