jckarter/clay — pull request #397 by stepancheg (2012-10-06 19:13:53+00:00)
Title: catch exception with context syntax

This commit adds catch-exception-with-context syntax:

```
catch (e; ctx)
catch (e: Exc; ctx)
```

and

```
catch (e in ctx)
catch (e: Exc in ctx)
```

Which one should I drop?

The patch has a minor drawback: if catch statement does not declare ctx variable, __exc_ctx variable is still declared. Is there a way to declare something like anonymous/invisible variable? Note, ctx variable must be kept to implement `throw;` statement later. This statement, unlike `throw e;` reuses context, and thus provides better diagnostics.