Re^2: R feature request: stop(..) should print its caller call
Martin Maechler
Martin Maechler <maechler@stat.math.ethz.ch>
Thu, 22 Jan 1998 12:02:36 +0100
>>>>> "KH" == Kurt Hornik <Kurt.Hornik@ci.tuwien.ac.at> writes:
>>>>> Martin Maechler writes:
>> The following shows what I mean:
>> tst<-function(x)in.tst(x); in.tst<-function(y)stop(paste("y is",y)); tst(pi)
>> in R gives
>> --------------------
>> Error: y is 3.141593
>> --------------------
>> in S-plus gives
>> ----------------------------------------
>>> > Error in in.tst(x): y is 3.14159265358979
>> Dumped ^^^^^^^^^^^^
>> ----------------------------------------
>> For locating bugs / problems in functions, it would be tremendously
>> helpful if R also printed the name of the function from which it is
>> called (actually the ``call(..)'' rather than just the function name).
KH> Martin,
KH> I am not sure. I find it more useful to call traceback() after an error
KH> occurred to find out what really happened.
The existence of a good utility such as traceback()
should not prevent stop(..) from producing more informative output.
The reason I think this is really wanted:
Many S- and R- function composers try to write functions which
``behave'', i.e. produce reasonable error messages when they are called
with "bad" arguments.
If I (as a function composer)
think on how to fill the "...." in a stop(....),
I've always been assuming that stop() would prepend the call (i.e. at least
the calling function).
Martin
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._