From iuke-tier@ey m@iii@g oii uiow@@edu  Wed Feb  7 14:36:32 2024
From: iuke-tier@ey m@iii@g oii uiow@@edu (iuke-tier@ey m@iii@g oii uiow@@edu)
Date: Wed, 7 Feb 2024 07:36:32 -0600 (CST)
Subject: [Rd] [External]  Get list of active calling handlers?
In-Reply-To: <e5f12cfa-7efa-41e8-b152-6e9ef8af39b9@gmail.com>
References: <e5f12cfa-7efa-41e8-b152-6e9ef8af39b9@gmail.com>
Message-ID: <164561a1-1acb-e69-cad-7a831e23b0ea@uiowa.edu>

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 at 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-tierney at uiowa.edu
Iowa City, IA 52242                 WWW:  http://www.stat.uiowa.edu



[Rd] [External] Get list of active calling handlers?
iuke-tier@ey m@iii@g oii uiow@@edu