====== Doporučený postup zpracování vyjímek ======
Sekce **do ... end** omezí obor platnosti lokalni proměnné **finally***. Jinak platí az do konce bloku.
Odsazením se zvýrazní odkud-kam je chráněný blok.
local File = io.open(FileName, "r")
do local function finally_Close() File:close() end
...
finally_Close()
end
error("Pri neomezeni pomoci do...end se ted znovu zavola finally_Close()!")
V ramci **jedne** funkce neni vhodne vyjimky zanorovat. Ve vnitrnim bloku jsou obe **finally** funkce lokalni a poradi volani neni presne dano.
Nejdriv zavola ta drive definovana a posleze ta vnitrni. Tedy obracene nez je ocekavano.
Požadujeme-li ignorování vyjímky vrátíme z funkce **true**.
Finally* funkce dostává jako parametr chybovou zpravu.
local function finally_except(msg) print(msg) return true end
__Doporučení:__
Není-li možno ve funkci úspěšně dále pokračovat přerušte ji pomocí error("Zpráva"). Bude přerušena i volající funkce atd... až do místa odchycení vyjímky. Typicky zpráva uživateli.