[R] inconsistency in tryCatch...

akshay kulkarni @k@h@y_e4 @end|ng |rom hotm@||@com
Thu Jun 23 19:09:52 CEST 2022


Dear Rui,
                Thanks for the reply. After some attempts I came to know that "finally" doesn't take a function as its argument. I was finding whether the case is same with other arguments. Thanks again.

Yours sinecerly,
AKSHAY M KULKARNI

________________________________
From: Rui Barradas <ruipbarradas using sapo.pt>
Sent: Thursday, June 23, 2022 5:09 AM
To: akshay kulkarni <akshay_e4 using hotmail.com>; Jeff Newmiller <jdnewmil using dcn.davis.ca.us>; r-help using r-project.org <r-help using r-project.org>
Subject: Re: [R] inconsistency in tryCatch...

Hello,

You don't need function() at all.
Unless you want a function to be called later, this also prints "fred":


tryCatch(print("fred"), error = function(e) sum(1:3), finally = sum(1:3))
#[1] "fred"


tryCatch's first argument name is 'expr'. In this case the expression is
print("fred"), the code Jeff mentions and that you believe might break.
Wrap tryCatch around it to prevent your code to stop running, for
instance, when reading files in a loop or in a long simulation. The
error is trapped and the code continues to the next instruction or loop
iteration.

Or do you need the function, something along the following lines?


f <- tryCatch(function() print("fred"),  error = function(e) sum(1:3),
finally = sum(1:3))

f()
#[1] "fred"


Hope this helps,

Rui Barradas

�s 21:08 de 22/06/2022, akshay kulkarni escreveu:
> dear Jeff,
>                 Thanks a lot for the informative reply....
>
> Yours sinecrely,
> AKSHAY M KULKARNI
> ________________________________
> From: Jeff Newmiller <jdnewmil using dcn.davis.ca.us>
> Sent: Thursday, June 23, 2022 1:25 AM
> To: akshay kulkarni <akshay_e4 using hotmail.com>; r-help using r-project.org <r-help using r-project.org>
> Subject: Re: [R] inconsistency in tryCatch...
>
> I don't think it is at all idiosyncratic... tryCatch doesn't expect the first argument to be a function... it is supposed to be the actual code that might break and raise an error.
>
> There are lots of functions (like lapply) that do expect you to provide a function, and even the other parameters to tryCatch expect a function, but you would not write a for loop and have a function definition in the body of the loop and expect the for loop to know it was supposed to call that function, would you? Think of tryCatch like a for loop or an if statement.
>
> On June 22, 2022 12:36:27 PM PDT, akshay kulkarni <akshay_e4 using hotmail.com> wrote:
>> Dear Jeff,
>>                Thanks! I think it is an idiosyncrasy of tryCatch? The other arguments like "error" doesn't need to be assigned to a call right? Just the definition would be sufficient, i think?
>>
>> Yours sincerely,
>> AKSHAY M KULKARNI
>> ________________________________
>> From: Jeff Newmiller <jdnewmil using dcn.davis.ca.us>
>> Sent: Thursday, June 23, 2022 12:53 AM
>> To: r-help using r-project.org <r-help using r-project.org>; akshay kulkarni <akshay_e4 using hotmail.com>; R help Mailing list <r-help using r-project.org>
>> Subject: Re: [R] inconsistency in tryCatch...
>>
>> You defined a function. You did not call the function. tryCatch returned the object you defined. So the interactive console printed the object returned.
>>
>> Invoking the "function" function does not call the defined function for you. Try:
>>
>> tryCatch((function() print("fred"))(), error = function(e) sum(1:3), finally = sum(1:3))
>>
>> On June 22, 2022 12:00:38 PM PDT, akshay kulkarni <akshay_e4 using hotmail.com> wrote:
>>> Dear members,
>>>                           I have the following code:
>>>
>>>         > tryCatch(function() print("fred"),  error = function(e) sum(1:3), finally = sum(1:3))
>>>          function() print("fred")
>>>
>>> The expected output from the tryCatch call should be to print "fred" to the console, and exit, but as seen above, it is outputting
>>>           function() print("fred")
>>>
>>> Can you people please shed some light on what is happening?
>>>
>>> thanking you,
>>> Yours sincerely,
>>> AKSHAY M KULKARNI
>>>
>>>        [[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>>> and provide commented, minimal, self-contained, reproducible code.
>>
>> --
>> Sent from my phone. Please excuse my brevity.
>
> --
> Sent from my phone. Please excuse my brevity.
>
>        [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

	[[alternative HTML version deleted]]



More information about the R-help mailing list