Az Önhöz hasonló olvasók támogatják a MUO-t. Amikor a webhelyünkön található linkek használatával vásárol, társult jutalékot kaphatunk. Olvass tovább.

A hibakezelés a szoftverfejlesztési ciklus egyik gyakori művelete. Ez a jó programozás döntő szempontja. A Go egyszerű és könnyen használható megközelítést alkalmaz beépített hibakezelési mechanizmusával. A függvényekből és metódusokból származó hibák visszaadásán alapul, lehetővé téve, hogy az intuitív és könnyen olvasható kódfunkciókra összpontosítson.

Kifejezetten kezeli a Go hibáit, ami szilárd keretrendszert eredményez a visszacsatoláshoz, amely lehetővé teszi az újrapróbálkozási logika következetes megvalósítását. A hibákat csomag további funkciókat biztosít a hibakezeléshez.

A hibák csomagja

A hibacsomag a Go szabványos könyvtárának egyik csomagja. A csomag egyszerű hibakezelési primitíveket és funkciókat kínál a hibák következetes létrehozásához és kezeléséhez a Go kódban.

A csomag biztosítja a Új funkció hibák létrehozására egyéni hibaüzenetekkel, amelyeket ugyanúgy használhat, mint bármely beépített hibatípust, mint pl.

instagram viewer
nulla és Hiba módszere a hiba felület.

A hibákat A csomag funkcionalitást is biztosít a hibák tördeléséhez és kibontásához, ez a módszer a hibákra vonatkozó típusérvényesítéshez.

Importálhatja a hibákat csomag az import kulcsszóval. Egyszerűen adja meg a csomag nevét az importált listában.

import"hibák"

A Go hibáinak észlelése és kezelése

A Go alapvető hibakezelésének ismerete megalapozza a hibákat csomag. A függvények és metódusok olyan hibákat adnak vissza, amelyeket egy erőforrás kísér.

Íme egy példa a beépített fájlmegnyitási művelet hibakezelésére os csomag.

csomag fő-

import (
"fmt"
"os"
)

funcfő-() {
fájl, err := os. Nyisd ki("fájlnév.txt")

ha hiba! = nulla {
fmt. Println (hiba)
}

// ...
}

A Nyisd ki módszere a os csomag akkor hasznos, ha szöveges fájlokkal dolgozik a Go alkalmazásban. Megnyit egy fájlt, egy nyitott fájlpéldányt és egy hiba.

A hibaérték lehet a nulla típus, nem jelez hibát. Ellenőrizheti azonban a nem nulla esetet, és kezelheti a hibát, ha az jelen van. A fenti esetben az if blokk kiírja a hibát.

Hozzáférhet a Hiba a hiba módszere a hibával kapcsolatos további információk kinyerésére (általában leírás).

ha hiba! = nulla {
fmt. Println (hiba. Hiba())
}

Ha például a fájl nem létezik, akkor egy hibaüzenet jelenik meg, amely valahogy így néz ki:

Hibák létrehozása a Go-ban

Hibákat hozhat létre a Új módszere a hibákat csomag. Ez a metódus egy karakterlánc-üzenetet fogad, és a talált hibákat adja vissza.

import"hibák"

funcfő-() {
err := hibák. Új("valami elromlott")

ha hiba! = nulla {
// a hibakezelő kód ide kerül
}
}

A fő- függvény új hibát hoz létre, és kezeli a hiba létrehozásából származó lehetséges hibákat egy ha nyilatkozat.

A Go alkalmazásban egyéni hibákat is megadhat. A hagyományos módszer egy struct és egy hibafüggvényt használ a struktúra megvalósításához a hiba funkcionalitása alapján.

csomag fő-

import"fmt"

típus ügyfélhiba struct {
info húr
}

funcfő-() {
// példa a struktúra példányosítása
err := customError{
info: "Valami elromlott!",
}

// kiadja a struktúra példányát
fmt. Println (hiba)
}

A ügyfélhiba A struct a hiba tervrajza, és a info karakterlánc mező tartalmazza a hibaüzenetet.

A hibafunkciói megvalósíthatják a ügyfélhiba struct és adjon vissza egy hiba karakterláncot.

func(ce custom Error)Hiba()húr {
Visszatérés fmt. Sprintf("Egyéni hiba történt: %v", ce.info)
}

A Hiba módszere a ügyfélhiba A struct egy karakterláncot ad vissza az fmt csomag Sprintf formázási módszere.

Becsomagolási és kicsomagolási hibák a Go-ban

A hibákhoz további környezeti információkat is hozzáadhat, ha tördeli őket. Elsősorban a tördelt hibákat fogja használni, hogy egyértelmű hibaüzeneteket hozzon létre a hibakeresés pontossága érdekében.

Használhatja a Errorf módszere a fmt csomag, amely funkciót biztosít a hibaüzenetek formázásához a hibák tördeléséhez. A Errorf metódus bevesz egy karakterláncot és egy karakterlánc formázási igét és a hibát, és visszaadja a tördelt hibát.

import (
"fmt"
"os"
)

funcfő-() {
_, err := os. Nyisd ki("fájlnév.txt")

ha hiba! = nulla {
wrappedErr := fmt. Errorf("Hiba a fájl megnyitásakor: %v", hiba)
fmt. Println (wrappedErr)
}
}

A fő- függvény megnyit egy fájlt a os csomagok Nyisd ki metódussal, és a hibát az Errorf metódusával csomagolja fmt csomag. Ezután kiadja a becsomagolt hibát a konzolnak.

A programjaiban lévő becsomagolt hibákat a Kibont módszere a hibákat csomag. A Kibont metódus beveszi a tördelt hibát, és visszaadja a kicsomagolt hibát.

import (
"fmt"
"os"
"hibák"
)

funcfő-() {
_, err := os. Nyisd ki("fájlnév.txt")

ha hiba! = nulla {
wrappedErr := fmt. Errorf("Hiba a fájl megnyitásakor: %v", hiba)
unwrappedErr := hibák. Kicsomagolás (wrappedErr)
fmt. Println (unwrappedErr)
}
}

A fő- függvény tördeli a fájl megnyitási műveletéből származó hibát, és a unwrappedErr változó tartalmazza a kicsomagolt hibát.

Naplózza a hibajelentéseket ezekkel a harmadik féltől származó naplózási csomagokkal

Néhány hibát naplóznia kell a későbbi felülvizsgálatokhoz, hibakereséshez és egyéb műveletekhez az alkalmazásfejlesztési folyamat során. Használhatja a támad Uber, Logrus, Zerolog és Log15 csomag a gyors, strukturált naplózás érdekében.