Hi Bert, Thanks for the reply. The use case I presented involves working code, not diagnosing a script in development. The concern is running a script where something changes outside of the script, as I stated. An example of a change is a data source changing perhaps the columns in the data source, or even changing the spelling of a column. The point is something changes. The question then becomes how to be aware of the change when the reset of the script runs fine, as I presented. Think of having a script running daily where you are not running it manually. How do you know there are errors in the script processing at this point? Does this question now make more sense? *Stephen Dawson, DSL* /Executive Strategy Consultant/ Business & Technology +1 (865) 804-3454 http://www.shdawson.com <http://www.shdawson.com> On 12/23/21 10:49 AM, Bert Gunter wrote:> ?tryCatch > > This list is not meant for tutorials. A web search on "find errors in > R code" brought up what appeared to be many resources to address your > question. Please make use of such resources before posting here. Also, > please read and follow the posting gui)de linked below to find out > what sort of help you can expect (and have already received here. > > Cheers, > Bert Gunter > > "The trouble with having an open mind is that people keep coming along > and sticking things into it." > -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) > > On Thu, Dec 23, 2021 at 3:14 AM Stephen H. Dawson, DSL via R-help > <r-help at r-project.org> wrote: >> Hi, >> >> >> I am thinking about awareness of errors when an R script runs. >> >> My concern is I have an error-free script. I run it for months on end >> without problems. Then, something changes somewhere causing an error. My >> wonderment is how R will tell me I had an error in the script, but the >> rest of the script ran without impairment. >> >> QUESTIONS >> What are some of the more helpful options available to an R developer to >> capture errors in a script run? >> >> What are some of the best processes to implement these more helpful options? >> >> >> Thanks, >> -- >> *Stephen Dawson, DSL* >> /Executive Strategy Consultant/ >> Business & Technology >> +1 (865) 804-3454 >> http://www.shdawson.com <http://www.shdawson.com> >> >> ______________________________________________ >> R-help at 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.
You still are not exhibiting signs of understanding Bert's response, and your question is vague, particularly to the extent that it could be pertinent to the R language (and therefore to the topic of this list). R itself just raises an error condition that custom tryCatch or default handling will deal with. If you run the script in a logging context (as defined by a non-R, operating-system-specific tool) then whatever error was printed by R to stdout or stderr will be in that log. If you want some different form communication then you will need to use tryCatch and initiate that effort. But since R itself doesn't know how you are running it (cron? CGI? Windows Task Manager? self-implemented socket monitoring?) it is up to you to deal with that. If you have a more focused question (e.g. how can I send an email or text) then there may well be a package for that, but you can find such things yourself with a search engine and discussion of how to use them is almost certainly off-topic here (read the Posting Guide). On December 23, 2021 8:16:58 AM PST, "Stephen H. Dawson, DSL via R-help" <r-help at r-project.org> wrote:>Hi Bert, > > >Thanks for the reply. > >The use case I presented involves working code, not diagnosing a script >in development. > >The concern is running a script where something changes outside of the >script, as I stated. An example of a change is a data source changing >perhaps the columns in the data source, or even changing the spelling of >a column. The point is something changes. > >The question then becomes how to be aware of the change when the reset >of the script runs fine, as I presented. > >Think of having a script running daily where you are not running it >manually. How do you know there are errors in the script processing at >this point? > >Does this question now make more sense? > > >*Stephen Dawson, DSL* >/Executive Strategy Consultant/ >Business & Technology >+1 (865) 804-3454 >http://www.shdawson.com <http://www.shdawson.com> > > >On 12/23/21 10:49 AM, Bert Gunter wrote: >> ?tryCatch >> >> This list is not meant for tutorials. A web search on "find errors in >> R code" brought up what appeared to be many resources to address your >> question. Please make use of such resources before posting here. Also, >> please read and follow the posting gui)de linked below to find out >> what sort of help you can expect (and have already received here. >> >> Cheers, >> Bert Gunter >> >> "The trouble with having an open mind is that people keep coming along >> and sticking things into it." >> -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) >> >> On Thu, Dec 23, 2021 at 3:14 AM Stephen H. Dawson, DSL via R-help >> <r-help at r-project.org> wrote: >>> Hi, >>> >>> >>> I am thinking about awareness of errors when an R script runs. >>> >>> My concern is I have an error-free script. I run it for months on end >>> without problems. Then, something changes somewhere causing an error. My >>> wonderment is how R will tell me I had an error in the script, but the >>> rest of the script ran without impairment. >>> >>> QUESTIONS >>> What are some of the more helpful options available to an R developer to >>> capture errors in a script run? >>> >>> What are some of the best processes to implement these more helpful options? >>> >>> >>> Thanks, >>> -- >>> *Stephen Dawson, DSL* >>> /Executive Strategy Consultant/ >>> Business & Technology >>> +1 (865) 804-3454 >>> http://www.shdawson.com <http://www.shdawson.com> >>> >>> ______________________________________________ >>> R-help at 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. > >______________________________________________ >R-help at 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.
Stephen, It is becoming a pattern here. You have been told R allows ways to check for errors as the code is interpreted and this DOES NOT distinguish between development aspects and in the field. It does not matter if a problem is external like a required file not being in place or having a new name or whatever. Anything that may go wrong can be handled in quite a few ways. Some are fairly obvious, such as checking if an expected list or vector or whatever is returned that is empty or not set or is the wrong data type or contains some NA or negative numbers and on and on. All kinds of IF statements and checks are a way to deal with these and you decide whether to make some kind of fix or abort. But obviously if the error happens outside your code (and sometimes also within) you can use various ways R provides to intercept the error and do something. Heck, people often use this in advance as a programming tactic such as using try() or tryCatch() to something like try to open file1 in the current directory and if that fails, in a specified directory and maybe if that fails, get it from file2 or maybe standard input ... Well-written code that wants to be bullet-proof will often be a bit bloated as it regularly stops and checks not only for all kinds of error conditions but also checks if the variables being used are in the proper format and range before being passed to functions that might break, is say you told it to use a correlation above 1. It also decides to intelligently deal with the errors, when possible. I have written code that called a statistical analysis (lavaan) function hundreds of thousands of times on randomly generated data and it worked fine, except occasionally it broke. As I tended to run it overnight, it was a pain to wake up and find it had crashed. No, I am not aware why it crashed, but it could have been something as simple as a matrix that could not be inverted. But for my purposes, it did not matter as what I would be happy to get is knowing it failed, marking associated rows of a data.frame accordingly, and filtering out the results in later analyses. So, I wrapped not only this call but some others as described above and intercepted the rare problem and dealt with it and let my program continue overnight. Clearly if you expect anomalies to be rare, this is extra overhead. But if things do happen, then your code is not robust enough. -----Original Message----- From: R-help <r-help-bounces at r-project.org> On Behalf Of Stephen H. Dawson, DSL via R-help Sent: Thursday, December 23, 2021 11:17 AM To: Bert Gunter <bgunter.4567 at gmail.com> Cc: R-help <r-help at r-project.org> Subject: Re: [R] Error Awareness Hi Bert, Thanks for the reply. The use case I presented involves working code, not diagnosing a script in development. The concern is running a script where something changes outside of the script, as I stated. An example of a change is a data source changing perhaps the columns in the data source, or even changing the spelling of a column. The point is something changes. The question then becomes how to be aware of the change when the reset of the script runs fine, as I presented. Think of having a script running daily where you are not running it manually. How do you know there are errors in the script processing at this point? Does this question now make more sense? *Stephen Dawson, DSL* /Executive Strategy Consultant/ Business & Technology +1 (865) 804-3454 http://www.shdawson.com <http://www.shdawson.com> On 12/23/21 10:49 AM, Bert Gunter wrote:> ?tryCatch > > This list is not meant for tutorials. A web search on "find errors in > R code" brought up what appeared to be many resources to address your > question. Please make use of such resources before posting here. Also, > please read and follow the posting gui)de linked below to find out > what sort of help you can expect (and have already received here. > > Cheers, > Bert Gunter > > "The trouble with having an open mind is that people keep coming along > and sticking things into it." > -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) > > On Thu, Dec 23, 2021 at 3:14 AM Stephen H. Dawson, DSL via R-help > <r-help at r-project.org> wrote: >> Hi, >> >> >> I am thinking about awareness of errors when an R script runs. >> >> My concern is I have an error-free script. I run it for months on end >> without problems. Then, something changes somewhere causing an error. >> My wonderment is how R will tell me I had an error in the script, but >> the rest of the script ran without impairment. >> >> QUESTIONS >> What are some of the more helpful options available to an R developer >> to capture errors in a script run? >> >> What are some of the best processes to implement these more helpfuloptions?>> >> >> Thanks, >> -- >> *Stephen Dawson, DSL* >> /Executive Strategy Consultant/ >> Business & Technology >> +1 (865) 804-3454 >> http://www.shdawson.com <http://www.shdawson.com> >> >> ______________________________________________ >> R-help at 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.______________________________________________ R-help at 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.