[Rd] Improving user-friendliness of S4 dispatch failure when mis-naming arguments?

Gabriel Becker g@bembecker @end|ng |rom gm@||@com
Thu Aug 10 21:39:11 CEST 2023


I just want to add my 2 cents that I think it would be very useful and
beneficial to improve S4 to surface that information as well.

More information about the way that the dispatch failed would be of great
help in situations like the one Michael pointed out.

~G

On Thu, Aug 10, 2023 at 9:59 AM Michael Chirico via R-devel <
r-devel using r-project.org> wrote:

> I forwarded that along to the original reporter with positive feedback
> -- including the argument names is definitely a big help for cuing
> what exactly is missing.
>
> Would a patch to do something similar for S4 be useful?
>
> On Thu, Aug 10, 2023 at 6:46 AM Hadley Wickham <h.wickham using gmail.com>
> wrote:
> >
> > Hi Michael,
> >
> > I can't help with S4, but I can help to make sure this isn't a problem
> > with S7. What do you think of the current error message? Do you see
> > anything obvious we could do to improve?
> >
> > library(S7)
> >
> > dbGetQuery <- new_generic("dbGetQuery", c("conn", "statement"))
> > dbGetQuery(connection = NULL, query = NULL)
> > #> Error: Can't find method for generic `dbGetQuery(conn, statement)`:
> > #> - conn     : MISSING
> > #> - statement: MISSING
> >
> > Hadley
> >
> > On Wed, Aug 9, 2023 at 10:02 PM Michael Chirico via R-devel
> > <r-devel using r-project.org> wrote:
> > >
> > > I fielded a debugging request from a non-expert user today. At root
> > > was running the following:
> > >
> > > dbGetQuery(connection = conn, query = query)
> > >
> > > The problem is that they've named the arguments incorrectly -- it
> > > should have been [1]:
> > >
> > > dbGetQuery(conn = conn, statement = query)
> > >
> > > The problem is that the error message "looks" highly confusing to the
> > > untrained eye:
> > >
> > > Error in (function (classes, fdef, mtable)  :   unable to find an
> > > inherited method for function ‘dbGetQuery’ for signature ‘"missing",
> > > "missing"’
> > >
> > > In retrospect, of course, this makes sense -- the mis-named arguments
> > > are getting picked up by '...', leaving the required arguments
> > > missing.
> > >
> > > But I was left wondering how we could help users right their own ship
> here.
> > >
> > > Would it help to mention the argument names? To include some code
> > > checking for weird combinations of missing arguments? Any other
> > > suggestions?
> > >
> > > Mike C
> > >
> > > [1]
> https://github.com/r-dbi/DBI/blob/97934c885749dd87a6beb10e8ccb6a5ebea3675e/R/dbGetQuery.R#L62-L64
> > >
> > > ______________________________________________
> > > R-devel using r-project.org mailing list
> > > https://stat.ethz.ch/mailman/listinfo/r-devel
> >
> >
> >
> > --
> > http://hadley.nz
>
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

	[[alternative HTML version deleted]]



More information about the R-devel mailing list