Čitatelji poput vas podržavaju MUO. Kada kupite putem poveznica na našoj stranici, možemo zaraditi partnersku proviziju. Čitaj više.

Rješavanje grešaka jedna je od čestih operacija u ciklusu razvoja softvera. To je ključni aspekt dobrog programiranja. Go ima pristup jednostavan i lak za korištenje sa svojim ugrađenim mehanizmom za obradu pogrešaka. Temelji se na vraćanju pogrešaka iz funkcija i metoda, što vam omogućuje da se usredotočite na funkcionalnost koda koja je intuitivna i laka za čitanje.

Vi eksplicitno rješavate pogreške u Gou, što rezultira čvrstim okvirom za povratne informacije, uz mogućnost dosljedne implementacije logike ponovnog pokušaja. The pogreške paket pruža dodatnu funkcionalnost za obradu pogrešaka.

Paket pogrešaka

Paket grešaka jedan je od paketa u Goovoj standardnoj knjižnici. Paket pruža jednostavne primitive za rukovanje pogreškama i funkcionalnosti za dosljedno stvaranje i manipuliranje pogreškama u Go kodu.

Paket pruža Novi funkcija za stvaranje pogrešaka s prilagođenim porukama o pogreškama koje možete koristiti na isti način kao bilo koju ugrađenu vrstu pogreške, kao što je

instagram viewer
nula i Greška metoda greška sučelje.

The pogreške paket također pruža funkcionalnost za omatanje i odmotavanje pogrešaka, metodu za tipske tvrdnje o pogreškama.

Možete uvesti pogreške paket s ključnom riječi import. Jednostavno navedite naziv paketa na popisu uvoza.

uvoz"greške"

Hvatanje i rukovanje pogreškama u Gou

Poznavanje osnovnog rukovanja pogreškama u Gou postavlja temelj za razumijevanje pogreške paket. Funkcije i metode vraćaju pogreške koje su popraćene resursom.

Evo primjera rukovanja pogreškama iz operacije otvaranja datoteke s ugrađenim os paket.

paket glavni

uvoz (
"fmt"
"os"
)

funkglavni() {
datoteka, pogreška := os. Otvoren("naziv datoteke.txt")

ako pogriješiti != nula {
fmt. Println (greška)
}

// ...
}

The Otvoren metoda os paket je koristan kada rad s tekstualnim datotekama u Go. Otvara datoteku, vraća otvorenu instancu datoteke i greška.

Vrijednost pogreške može biti nula tipa, ne pokazujući pogreške. Međutim, možete provjeriti slučaj koji nije nula i riješiti pogrešku ako je prisutna. U gornjem slučaju, if blok ispisuje pogrešku.

Možete pristupiti Greška metoda pogreške za izvlačenje više informacija o pogrešci (obično opis).

ako pogriješiti != nula {
fmt. Println (pogreška Greška())
}

Na primjer, ako datoteka ne postoji, vidjet ćete poruku o pogrešci koja izgleda otprilike ovako:

Stvaranje pogrešaka u Go

Možete stvoriti pogreške s Novi metoda pogreške paket. Ova metoda prima poruku niza i vraća uočene pogreške.

uvoz"greške"

funkglavni() {
pogreška := pogreške. Novi("nešto je pošlo po zlu")

ako pogriješiti != nula {
// kod za obradu grešaka ide ovdje
}
}

The glavni stvara novu pogrešku i obrađuje moguće pogreške iz stvaranja pogreške s ako izjava.

Također možete definirati prilagođene pogreške u Go-u. Konvencionalna metoda koristi strukturu i funkciju pogreške za implementaciju strukture na temelju funkcionalnosti pogreške.

paket glavni

uvoz"fmt"

tip customError strukturirati {
info niz
}

funkglavni() {
// primjer instanciranja strukture
pogreška := customError{
info: "Nešto je pošlo po zlu!",
}

// izlaz instance strukture
fmt. Println (greška)
}

The customError struct je nacrt za grešku, a info polje niza sadržavat će poruku o pogrešci.

Vaše funkcije pogreške mogu implementirati customError struct i vraća niz pogreške.

funk(ce customError)Greška()niz {
povratak fmt. Sprintf("Dogodila se prilagođena pogreška: %v", ce.info)
}

The Greška metoda customError struct vraća niz pomoću metoda oblikovanja Sprintf fmt paketa.

Pogreške pri omotavanju i odmotavanju u Gou

Pogreškama možete dodati dodatne kontekstualne informacije tako da ih prelomite. Umotane pogreške prvenstveno ćete koristiti za stvaranje jasnih poruka o pogreškama za preciznost u otklanjanju pogrešaka.

Možete koristiti Errorf metoda fmt paket koji pruža funkcionalnost za formatiranje poruka o pogreškama za omotavanje pogrešaka. The Errorf metoda uzima niz i glagol oblikovanja niza te pogrešku i vraća umotanu pogrešku.

uvoz (
"fmt"
"os"
)

funkglavni() {
_, pogriješiti := os. Otvoren("naziv datoteke.txt")

ako pogriješiti != nula {
wrappedErr := fmt. Errorf("Pogreška pri otvaranju datoteke: %v", pogreška)
fmt. Println (wrappedErr)
}
}

The glavni funkcija otvara datoteku s os paketa Otvoren metodom i omotava pogrešku metodom Errorf fmt paket. Zatim ispisuje umotanu pogrešku na konzolu.

Možete odmotati omotane pogreške u svojim programima s Razmotati metoda pogreške paket. The Razmotati metoda prima umotanu pogrešku i vraća neomotanu pogrešku.

uvoz (
"fmt"
"os"
"greške"
)

funkglavni() {
_, pogriješiti := os. Otvoren("naziv datoteke.txt")

ako pogriješiti != nula {
wrappedErr := fmt. Errorf("Pogreška pri otvaranju datoteke: %v", pogreška)
unwrappedErr := pogreške. Odmotaj (wrappedErr)
fmt. Println (unwrappedErr)
}
}

The glavni funkcija omotava pogrešku iz operacije otvaranja datoteke i unwrappedErr varijabla sadrži nezamotanu pogrešku.

Zabilježite svoja izvješća o pogreškama pomoću ovih paketa za bilježenje trećih strana

Morat ćete zabilježiti neke pogreške za kasnije preglede, otklanjanje pogrešaka i druge operacije tijekom procesa razvoja aplikacije. Možete koristiti zap paket Ubera, Logrus, Zerolog i Log15 paketi za brzo, strukturirano evidentiranje.