[R] Problem with geterrmessage()
Martin Maechler
maechler at stat.math.ethz.ch
Fri Feb 23 10:43:23 CET 2018
>>>>> Dennis Fisher <fisher at plessthan.com>
>>>>> on Thu, 22 Feb 2018 13:01:37 -0800 writes:
> Luke
> Thanks — I revised the code to:
> ERRORMESSAGE <- try(source(USERSCRIPTFILE, local=T), silent=T)
> print(ERRORMESSAGE) now returns:
> $value
> [1] 0
> $visible
> [1] FALSE
> Not clear what to make of that.
> Dennis
The help page ?try has
contained for a long time
‘try’ is implemented using ‘tryCatch’; for programming, instead of
‘try(expr, silent = TRUE)’, something like ‘tryCatch(expr, error =
function(e) e)’ (or other simple error handler functions) may be
more efficient and flexible.
and you do use 'silent=T' (which is "unsafe" (*) !)
I'd strongly advocate you use the 2nd proposition by given by
Luke Tierney (cited below):
Learn to use tryCatch() instead of try() and then such things
can be done considerably less obscurely.
Best,
Martin Maechler, ETH Zurich
--
*) Using 'T' instead of 'TRUE' (of 'F' instead of 'FALSE' *is* unsafe):
a previous 'T <- 0' will change what you really wanted.
TRUE and FALSE are "constants" in R, whereas T and F are variables
> Dennis Fisher MD
> P < (The "P Less Than" Company)
> Phone / Fax: 1-866-PLessThan (1-866-753-7784)
> www.PLessThan.com
>> On Feb 22, 2018, at 12:45 PM, luke-tierney at uiowa.edu wrote:
>>
>> Only the default error handler puts the error message in a buffer
>> where it can be retrieved with geterrmessage. try() replaces the
>> default error handler. Either look at the value returned by try() or
>> use tryCatch with conditionMessage.
>>
>> Best,
>>
>> luke
>>
>> On Thu, 22 Feb 2018, Dennis Fisher wrote:
>>
>>> R 3.4.3
>>> OS X
>>>
>>> Colleagues
>>>
>>> I have a 20K line script in which I encounter an unexpected problem.
>>>
>>> If the script detects presence of a particular file USERCODE.txt, it executes:
>>> source(“USERCODE.txt”)
>>> If that file is not present, the script executes without a problem.
>>>
>>> There might be syntax errors in USERCODE.txt; therefore, the code above is embedded in a try command:
>>> try(source(“USERCODE.txt", local=T), silent=T)
>>> followed by:
>>> ERRORMESSAGE <- geterrmessage()
>>>
>>> For unclear reasons, an earlier command is yielding an error message:
>>> unused argument (\"\\n\")
>>> Despite identifying the exact source of that error, I can’t fix it (and it is of no consequence).
>>>
>>> Ideally, I would like to clear out the pre-existing error message immediately before the “try” command (or perhaps at that particular location where it is being created) — but I can’t figure out how to do so.
>>>
>>> Any suggestions would be welcome.
>>>
>>> Dennis
>>>
>>> Dennis Fisher MD
>>> P < (The "P Less Than" Company)
>>> Phone / Fax: 1-866-PLessThan (1-866-753-7784)
>>> www.PLessThan.com
>>>
>>> ______________________________________________
>>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>>> and provide commented, minimal, self-contained, reproducible code.
>>>
>>
>> --
>> Luke Tierney
>> Ralph E. Wareham Professor of Mathematical Sciences
>> University of Iowa Phone: 319-335-3386
>> Department of Statistics and Fax: 319-335-3017
>> Actuarial Science
>> 241 Schaeffer Hall email: luke-tierney at uiowa.edu
>> Iowa City, IA 52242 WWW: http://www.stat.uiowa.edu
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list