From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fac41,b87849933931bc93 X-Google-Attributes: gidfac41,public X-Google-Thread: 109fba,b87849933931bc93 X-Google-Attributes: gid109fba,public X-Google-Thread: f43e6,b87849933931bc93 X-Google-Attributes: gidf43e6,public X-Google-Thread: 114809,b87849933931bc93 X-Google-Attributes: gid114809,public X-Google-Thread: 103376,b87849933931bc93 X-Google-Attributes: gid103376,public X-Google-Thread: 1108a1,b87849933931bc93 X-Google-Attributes: gid1108a1,public From: bobduff@world.std.com (Robert A Duff) Subject: Re: Exceptions as objects (was Re: What is wrong with OO ?) Date: 1997/01/25 Message-ID: #1/1 X-Deja-AN: 212210486 references: <5acjtn$5uj@news3.digex.net> organization: The World Public Access UNIX, Brookline, MA newsgroups: comp.lang.c++,comp.lang.smalltalk,comp.lang.eiffel,comp.lang.ada,comp.object,comp.software-eng Date: 1997-01-25T00:00:00+00:00 List-Id: In article , Piercarlo Grandi wrote: >The obvious and correct solution is to make the name of the procedure >dynamically scoped; then it can be redefined whenever this is needed. How about this: The exception-handler is a procedure that is passed to the procedure that detects the error. So, in your sqrt example, the sqrt function would take a Float parameter, and a function to call in case the Float is negative. This is essentially how Smalltalk does things. If you allow defaults on parameters, then you can make the default handler be "print out a message and kill the program" or "enter the debugger" or whatever. So callers only have to worry about it if they want to do something special on sqrt(negative). Is this not pretty much equivalent to your dynamic-scoping scheme? And it has the advantage that the relevant information is in the specification of the procedure that wants to "raise" the exception. - Bob