[Rd] [External]  Get list of active calling handlers?
    Duncan Murdoch 
    murdoch@dunc@n @end|ng |rom gm@||@com
       
    Wed Feb  7 15:08:05 CET 2024
    
    
  
On 07/02/2024 8:36 a.m., luke-tierney using uiowa.edu wrote:
> 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.
Thanks!
Duncan
    
    
More information about the R-devel
mailing list