Philip Withnall
philip.withnall@collabora.co.uk 2015
Obsluha a hlášení běhových chyb

# GError

# Použití GError

`GError` je standardní mechanizmus hlášení chyb pro kód používající GLib a může na něj být pohlíženo jako na implementaci výjimek v jazyce C.

Libovolný druh selhání za běhu (cokoliv, co není programová chyba) musí být obslouženo vložením parametru `GError**` do funkce a před návratem z funkce nastavením vhodného a smysluplného popisu selhání v GError. Programové chyby se naopak pomocí GError obsluhovat nesmí: místo toho použijte assertion a podmíněné testy před a po.

Použití GError byste měli dávat přednost před prostým návratem kódu, protože poskytuje více informací a navíc je podporován všemi nástroji GLib. Například introspekce API bude automaticky detekovat všechny parametry GError, protože je pak umí převést na výjimky v jiných jazycích.

Výpis varování do konzole se nesmí provádět v programovém kódu knihovny. Použijte GError a volající kód jej může propagovat dále, rozhodnout se jej zpracovat nebo se rozhodnout jej vypsat do konzole. V ideálním případě je jediným kódem, který vypisuje do konzole, programový kód nejvyšší úrovně aplikace a ne kód knihovny.

Volání kterékoliv funkce, které přebírá `GError**`, by mělo takovýto parametr poskytnout a pak příslušně obsloužit vrácený GError. Je jen velmi málo situací, kdy je přijatelné potenciální chybu ignorovat předáním `NULL` do parametru `GError**`.

Dokumentace k API knihovny GLib obsahuje uceleného průvodce použitím GError.