Tokie skaitytojai kaip jūs padeda palaikyti MUO. Kai perkate naudodami nuorodas mūsų svetainėje, galime uždirbti filialų komisinius. Skaityti daugiau.

Klaidų apdorojimas yra viena iš dažnų operacijų programinės įrangos kūrimo cikle. Tai esminis gero programavimo aspektas. „Go“ naudoja paprastą ir lengvai naudojamą metodą su integruotu klaidų valdymo mechanizmu. Jis pagrįstas funkcijų ir metodų klaidų grąžinimu, todėl galite sutelkti dėmesį į intuityvią ir lengvai skaitomą kodo funkcijas.

„Go“ klaidas tvarkote aiškiai, o tai sukuria tvirtą grįžtamojo ryšio sistemą ir galimybę nuosekliai įgyvendinti pakartotinio bandymo logiką. The klaidų paketas suteikia papildomų klaidų tvarkymo funkcijų.

Klaidų paketas

Klaidų paketas yra vienas iš paketų Go standartinėje bibliotekoje. Paketas suteikia paprastų klaidų tvarkymo primityvų ir funkcijų, leidžiančių nuosekliai kurti ir manipuliuoti klaidomis visame Go kode.

Paketas suteikia Nauja funkcija, skirta kurti klaidas naudojant pasirinktinius klaidų pranešimus, kuriuos galite naudoti taip pat, kaip ir bet kurį įtaisytosios klaidos tipą, pvz.,

instagram viewer
nulis ir Klaida metodas klaida sąsaja.

The klaidų Paketas taip pat suteikia klaidų apvyniojimo ir išvyniojimo funkcionalumą, metodą, leidžiantį patvirtinti klaidas.

Galite importuoti klaidų paketą su importavimo raktiniu žodžiu. Tiesiog nurodykite paketo pavadinimą importuojamų prekių sąraše.

importuoti"klaidos"

„Go“ klaidų gaudymas ir apdorojimas

Pagrindinės „Go“ klaidų valdymo žinios sudaro pagrindą suprasti klaidų paketą. Funkcijos ir metodai grąžina klaidas, kurias lydi išteklius.

Štai failo atidarymo operacijos su įtaisytomis klaidomis pavyzdys os paketą.

paketą pagrindinis

importuoti (
"fmt"
"os"
)

funcpagrindinis() {
failas, klaida := os. Atviras("failo pavadinimas.txt")

jeigu klysta! = nulis {
fmt. Println (klaida)
}

// ...
}

The Atviras metodas os paketas naudingas, kai darbas su tekstiniais failais programoje „Go“.. Jis atidaro failą, grąžindamas atidarytą failo egzempliorių ir klaida.

Klaidos reikšmė gali būti nulis tipo, nenurodant jokių klaidų. Tačiau galite patikrinti, ar atvejis nėra nulinis, ir tvarkyti klaidą, jei ji yra. Pirmiau nurodytu atveju, jei blokas išspausdina klaidą.

Galite pasiekti Klaida klaidos metodas, leidžiantis gauti daugiau informacijos apie klaidą (dažniausiai aprašymas).

jeigu klysta! = nulis {
fmt. Println (err. Klaida ()
}

Pavyzdžiui, jei failas neegzistuoja, pamatysite klaidos pranešimą, kuris atrodo maždaug taip:

„Go“ klaidų kūrimas

Galite sukurti klaidų naudodami Nauja metodas klaidų paketą. Šis metodas priima eilutės pranešimą ir grąžina aptiktas klaidas.

importuoti"klaidos"

funcpagrindinis() {
klaida := klaidos. Naujas ("kažkas ne taip")

jeigu klysta! = nulis {
// čia eina klaidų apdorojimo kodas
}
}

The pagrindinis funkcija sukuria naują klaidą ir apdoroja galimas klaidos sukūrimo klaidas su jeigu pareiškimas.

Taip pat galite apibrėžti pasirinktines „Go“ klaidas. Įprastas metodas naudoja struktūrą ir klaidos funkciją, kad įgyvendintų struktūrą, pagrįstą klaidos funkcionalumu.

paketą pagrindinis

importuoti"fmt"

tipo kliento klaida struktūra {
informacija styga
}

funcpagrindinis() {
// struktūros egzistavimo pavyzdys
klaida := kliento klaida{
informacija: „Kažkas ne taip!,
}

// išveda struktūros egzempliorių
fmt. Println (klaida)
}

The kliento klaida struct yra klaidos planas ir informacija eilutės lauke bus klaidos pranešimas.

Jūsų klaidų funkcijos gali įgyvendinti kliento klaida struct ir grąžinti klaidos eilutę.

func(Customer Error)Klaida()styga {
grąžinti fmt. Sprintf("Įvyko priskirta klaida: %v", ce.info)
}

The Klaida metodas kliento klaida struct grąžina eilutę naudojant fmt paketo Sprintf formatavimo metodas.

„Go“ vyniojimo ir išvyniojimo klaidos

Galite pridėti papildomos kontekstinės informacijos prie klaidų, jas apvyniodami. Visų pirma naudosite apvyniotas klaidas, kad sukurtumėte aiškius klaidų pranešimus, kad būtų galima tiksliai derinti.

Galite naudoti Klaida metodas fmt paketą, kuris suteikia funkcionalumą formatuoti klaidų pranešimus, kad būtų apvyniotos klaidos. The Klaida metodas paima eilutę ir eilutės formatavimo veiksmažodį bei klaidą ir grąžina apvyniotą klaidą.

importuoti (
"fmt"
"os"
)

funcpagrindinis() {
_, klaida := os. Atviras("failo pavadinimas.txt")

jeigu klysta! = nulis {
wrappedErr := fmt. Errorf("Klaida atidarant failą: %v", klaida)
fmt. Println (wrappedErr)
}
}

The pagrindinis funkcija atidaro failą su os paketas Atviras metodą ir apvynioja klaidą Errorf metodu fmt paketą. Tada jis išveda suvyniojimo klaidą į konsolę.

Galite išvynioti programų klaidas naudodami Išvynioti metodas klaidų paketą. The Išvynioti metodas priima įvyniojimo klaidą ir grąžina išvyniotą klaidą.

importuoti (
"fmt"
"os"
"klaidos"
)

funcpagrindinis() {
_, klaida := os. Atviras("failo pavadinimas.txt")

jeigu klysta! = nulis {
wrappedErr := fmt. Errorf("Klaida atidarant failą: %v", klaida)
unwrappedErr := klaidos. Išvynioti (wrappedErr)
fmt. Println (unwrappedErr)
}
}

The pagrindinis funkcija apvynioja klaidą dėl failo atidarymo operacijos ir unwrappedErr kintamajame yra neišvyniota klaida.

Užregistruokite savo klaidų ataskaitas naudodami šiuos trečiųjų šalių registravimo paketus

Turėsite užregistruoti kai kurias klaidas, kad galėtumėte vėliau peržiūrėti, derinti ir atlikti kitas programos kūrimo proceso operacijas. Galite naudoti zap „Uber“, „Logrus“, „Zerolog“ ir „Log15“ paketai, skirti greitam, struktūriniam registravimui.