[Rd] Unique ID for conditions to supress/rethrow selected conditions?

Iñaki Ucar |uc@r @end|ng |rom |edor@project@org
Sun Apr 16 13:52:50 CEST 2023


On Sun, 16 Apr 2023 at 12:58, nospam using altfeld-im.de <nospam using altfeld-im.de> wrote:
>
> I am the author of the *tryCatchLog* package and want to
>
> - suppress selected conditions (warnings and messages)
> - rethrow  selected conditions (e.g a specific warning as a message or to "rename" the condition text).
>
> I could not find any reliable unique identifier for each possible condition
>
> - that (base) R throws
> - that 3rd-party packages can throw (out of scope here).
>
> Is there any reliable way to identify each possible condition of base R?

I don't think so. As stated in the manual, "‘simpleError’ is the class
used by ‘stop’ and all internal error signals".

> Are there plans to implement such an identifier ("errno")?

I agree that something like this would be a nice addition. With the
current condition system, it would be certainly easy (but quite a lot
of work) to define a hierarchy of built-in conditions, and then use
them consistently throughout base R. For example,

> 1 + "a"
Error in 1 + "a" : non-numeric argument to binary operator

could be a "typeError". And catching this is already possible:

> e <- errorCondition("non-numeric argument to binary operator", class="typeError")
> tryCatch(stop(e), typeError=function(e) print("hello"))
[1] "hello"

-- 
Iñaki Úcar



More information about the R-devel mailing list