On Wed, 18 May 2005, Peter Wolf wrote:
> I am looking for a way to get a warning message
> immediately after an evaluation within a function.
> To get error messages you can use geterrmessage().
Well, only in an error handler, as an error normally throws you out of the
function. (That is the point of geterrmessage(), to enable error handlers
to be written.)
To print the message immediately, look up options("warn"). We
don't have
a general warnings handler mechanism, but you can make use of condition
objects.
> But I found no function that allows me to check for
> warnings.
>
> Five years ago this questions has been posted
> but I haven't found any answer.
What exactly is `this question'? I see several assertions but no
question. (It would have been helpful to give an exact reference to the
archives.)
> Thanks for any help.
>
> Peter Wolf
>
>
> ------------
>
> For illustration purpose a simple example follows:
> you can get warnings after an error occured or after
> exiting from the function but not at once after
> "x<-matrix(1:3,2,2)":
>
>> options(warn=0)
>> f<-function(x){
> x<-matrix(1:3,2,2)
> print(0)
> warnings() # no warning is shown
> print(1)
> try({xxx})
> print(2)
> print(geterrmessage())
> print(3)
> warnings()
> print(4)
> }
>> f()
> [1] 0
> [1] 1
> Fehler in try({ : Objekt "xxx" nicht gefunden
> Zus?tzlich: Warnmeldung:
> Datenl?nge [3] ist kein Teiler oder Vielfaches der Anzahl der Zeilen [2] in
> matrix
> [1] 2
> [1] "Fehler in try({ : Objekt \"xxx\" nicht gefunden\n"
> [1] 3
> Warning message:
> Datenl?nge [3] ist kein Teiler oder Vielfaches der Anzahl der Zeilen [2] in
> matrix
> [1] 4
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595