MOO-cows Mailing List Archive


Re: raise()

On Fri, 2 Aug 1996, Richard Godard wrote:

> I was wondering if we could have a reraise() bf (or reraise; statement)
> that would continue the raising (and error catching) process as if the
> except clause containing the bf call/statement has not caight it?
> ...
> try
>   foo:do_stuff(e_perm_trigger);
> except error (E_PERM)
>   {code, msg, value, tb} = error;
>   if (value == e_perm_trigger)
>     player:tell(msg);
>     return;
>   else
>     "usually I raise(code, msg, value) but lose the tb info :(";
>     reraise;
>   endif
> endtry
I would prefer just adding an optional 4th argument to raise() that the
server uses for the traceback stack instead of creating one from the
callers stack and current location in the verb.  So in the above example,
the reraise line would be replaced with:
Of course this would probably open up a few security holes so it might have
to be wiz-only, I'm not sure.

Follow-Ups: References:

Home | Subject Index | Thread Index