lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

在 2011-6-20 晚上11:30,"steve donovan" <>写道:
> 2011/6/20 Xavier Wang <>:
> > But I have some things to do even if I want throw the error, I want to
> > execute some code when the function I called have error, even if I don't
> > care what error it does , I just want some resource to be clean .
> Ah, like this?
> local ok, err = pcall(problem_function)
> if not ok then
>   pcall(cleanup)
>   error(err)
> end
> That is, re-raise the error.
> steve d.
Yes , it's great  :)
And next question, your code cannot handle multiple return value, is there any more generic way to handle more situations? Just like:

local ok, rets... = pcall(func)
if not ok then
-- using rets, note that before here I don't actually know how many values the function returns
local a,b,c = rets...