[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: setfenv/getfenv
- From: steve donovan <steve.j.donovan@...>
- Date: Thu, 14 Jan 2010 08:30:45 +0200
On Thu, Jan 14, 2010 at 6:49 AM, Nevin Flanagan <Alestane@comcast.net> wrote:
> function catch(valid, ...)
> if valid then return ...
> elseif expr1((...)) then
> handler1
> elseif expr2((...)) then
> handler2
> end
> end
There's a little gotcha if your protected blocks are in a function. Consider
doSomething()
and
doSomething()
return
Both will return nil, but the second clearly wants to return from the
enclosing function; the first does not.
Metalua does try..except, but it's a compiler so it knows if there are
return statements in the block. Tricky to infer it at runtime!
steve d.