On Tue, 6 Feb 2024, Duncan Murdoch wrote:
The SO post https://stackoverflow.com/q/77943180 tried to call
globalCallingHandlers() from a function, and it failed with the error message
"should not be called with handlers on the stack". A much simpler
illustration of the same error comes from this line:
try(globalCallingHandlers(warning = function(e) e))
The problem here is that try() sets an error handler, and
globalCallingHandlers() sees it and aborts.
If I call globalCallingHandlers() with no arguments, I get a list of
currently active global handlers. Is there also a way to get a list of
active handlers, including non-global ones (like the one try() added in the
line above)?
There is not. The internal stack is not safe to allow to escape to the
R level. It would be possible to write a reflection function to
provide some information, but it would be a fair bit of work to design
and I don't think would be of enough value to justify that.
The original SO question would be better addressed to
Posit/RStudio. Someone with enough motivation might also be able to
figure out an answer by looking at the source code at
https://github.com/rstudio/rstudio.
Best,
luke
Duncan Murdoch
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
--
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-tier...@uiowa.edu
Iowa City, IA 52242 WWW: http://www.stat.uiowa.edu
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel