MOO-cows Mailing List Archive


RE: Possible bug

I haven't looked in the source but I would guess this is because raise() acts 
like return in the sense that all it does is return an error datatype, and isn't 
a direct error, with or without the debug flag raised.  It doesn't actually
pass through the normal error handling operations.  In the same vein, you'll
note that `E_PERM ! E_PERM => E_INVARG' returns E_PERM too.

If however, this is the behaviour you want, then create #0:bf_raise rxd and
add this one line:


(and of course create/set $server_options.protect_raise to 1)

and then `raise(E_PERM) ! E_PERM => E_INVARG' will return E_INVARG
and any other kind of error atom will cause a traceback of that type.

From:  Brian Buchanan[]
Sent:  Wednesday, March 27, 1996 1:52 AM
Subject:  Possible bug

eval-d `raise(E_PERM) ! E_PERM => E_INVARG'
=> E_PERM  (Permission denied)

Shouldn't this return E_INVARG, even if the debug bit is unset?  Otherwise it
kinda defeats the purpose of the `' notation if used in !d verbs.

Server version 1.8.0p2, standard LambdaCore eval-d.

   Brian Buchanan
-= ArchWizard of Digital Wasteland MOO ( 8888) =-


Home | Subject Index | Thread Index