[R] Exception Handling

David Brahm brahm at alum.mit.edu
Thu Jan 16 17:14:29 CET 2003

Zhongming Yang <Zhongming.Yang at cchmc.org> wrote:
> How can I catch R errors and depend on this error call other R
> functions in Perl? 

Here's a little Perl script that invokes R.  If it is called with a positive
numerical argument, then R exits with that status, and Perl catches it via $?.
Note the script file in /tmp is saved (intentionally) if R exits abnormally.
See also the help pages for q(), stop(), and options("error").

(($arg1) = @ARGV) || die "Must pass a numerical argument.\n";
$script = "/tmp/rwrap$$.R";
open(SCRIPT, ">$script");
print SCRIPT <<EOF;
  arg1 <- $arg1
  if (arg1 > 0) log("a")
system("R --vanilla --slave < $script");
($Rstat = $?/256) && die "Aborted in R with status $Rstat.\n";
unlink $script;

                              -- David Brahm (brahm at alum.mit.edu)

More information about the R-help mailing list