Code
r_process()
Output
> callr::r(function() 1 + "A", error = "error")
Error:
! in callr subprocess.
Caused by error in `1 + "A"`:
! non-numeric argument to binary operator
Type .Last.error to see the more details.
> .Last.error
<callr_error/rlib_error_3_0/rlib_error/error>
Error:
! in callr subprocess.
Caused by error in `1 + "A"`:
! non-numeric argument to binary operator
---
Backtrace:
1. callr::r(function() 1 + "A", error = "error")
2. callr:::get_result(output = out, options)
3. callr:::throw(callr_remote_error(remerr, output), parent = fix_msg(remerr[[3]]))
---
Subprocess backtrace:
1. base::.handleSimpleError(function (e)
2. global h(simpleError(msg, call))
Code
r_process()
Output
> callr::r(function() 1 + "A", error = "error")
Error:
! in callr subprocess.
Caused by error in `1 + "A"`:
! non-numeric argument to binary operator
---
Backtrace:
1. callr::r(function() 1 + "A", error = "error")
2. callr:::get_result(output = out, options)
3. callr:::throw(callr_remote_error(remerr, output), parent = fix_msg(remerr[[3]]))
---
Subprocess backtrace:
1. base::.handleSimpleError(function (e)
2. global h(simpleError(msg, call))
Execution halted
Code
r_process()
Output
> callr::r(function() {
+ f <- function() g()
+ g <- function() 1 + "A"
+ f()
+ }, error = "stack")
Error:
! in callr subprocess.
Caused by error in `1 + "A"`:
! non-numeric argument to binary operator
i With remote `$stack`, use `utils::debugger()` to debug it.
Type .Last.error to see the more details.
> .Last.error
<callr_error/rlib_error_3_0/rlib_error/error>
Error:
! in callr subprocess.
Caused by error in `1 + "A"`:
! non-numeric argument to binary operator
i With remote `$stack`, use `utils::debugger()` to debug it.
---
Backtrace:
1. callr::r(function() {
2. callr:::get_result(output = out, options)
3. callr:::throw(callr_remote_error_with_stack(remerr, output), parent = fix_msg(remer
Code
r(function() 1 + "A")
Condition
Error:
! in callr subprocess.
Caused by error:
! non-numeric argument to binary operator
Code
r(function() {
f <- (function() g())
g <- (function() 1 + "A")
f()
})
Condition
Error:
! in callr subprocess.
Caused by error:
! non-numeric argument to binary operator
Code
err <- tryCatch(r(function() 1 + "A"), error = function(e) e)
err$parent
Output
<simpleError in "1 + \"A\"": non-numeric argument to binary operator>
Code
err <- tryCatch(callr::r(function() {
withr::local_options(list(callr.error = "error"))
callr::r(function() 1 + "A")
}), error = function(e) e)
err$parent
Output
<callr_error/rlib_error_3_0/rlib_error/error>
Error:
! in callr subprocess.
Caused by error in `1 + "A"`:
! non-numeric argument to binary operator
---
Subprocess backtrace:
1. base::.handleSimpleError(function (e) ...
2. global h(simpleError(msg, call))
Code
err$parent$parent
Output
<simpleError in "1 + \"A\"": non-numeric argument to binary operator>
Code
r_process()
Output
> callr::r(function() callr::r(function() 1 + "a"))
Error:
! in callr subprocess.
Caused by error:
! in callr subprocess.
Caused by error in `1 + "a"`:
! non-numeric argument to binary operator
---
Backtrace:
1. callr::r(function() callr::r(function() 1 + "a"))
2. callr:::get_result(output = out, options)
3. callr:::throw(callr_remote_error(remerr, output), parent = fix_msg(remerr[[3]]))
---
Subprocess backtrace:
1. callr::r(function() 1 + "a")
2. callr:::get_result(output = out, options)
3. base::throw(callr_remote_error(remerr, output), parent = fix_msg(remerr[[3]]))
4. | base::signalCondition(cond)
5. global (function (e)
---
Subprocess backtrace:
1. base::.handleSimpleError(function (e)
2. global h(simpleError(msg, call))
Execution halted
Code
p$get_result()
Condition
Error:
! in callr subprocess.
Caused by error:
! non-numeric argument to binary operator
Code
p$get_result()
Condition
Error:
! in callr subprocess.
Caused by error:
! non-numeric argument to binary operator
Code
rs$run(function() 1 + "A")
Condition
Error:
! in callr subprocess.
Caused by error:
! non-numeric argument to binary operator
Code
rs$run(function() 1 + "A")
Condition
Error:
! in callr subprocess.
Caused by error:
! non-numeric argument to binary operator
Code
rs$read()$error
Output
<callr_error/rlib_error_3_0/rlib_error/error>
Error:
! in callr subprocess.
Caused by error in `1 + "A"`:
! non-numeric argument to binary operator
---
Subprocess backtrace:
1. base::.handleSimpleError(function (e) ...
2. global h(simpleError(msg, call))
Code
rs$read()$error
Output
<callr_error/rlib_error_3_0/rlib_error/error>
Error:
! in callr subprocess.
Caused by error in `1 + "A"`:
! non-numeric argument to binary operator
---
Subprocess backtrace:
1. base::.handleSimpleError(function (e) ...
2. global h(simpleError(msg, call))
Code
err <- tryCatch(callr::r(function() stop("foobar")), error = function(e) e)
err
Output
<callr_error/rlib_error_3_0/rlib_error/error>
Error:
! in callr subprocess.
Caused by error in `(function () ...`:
! foobar
---
Subprocess backtrace:
1. base::stop("foobar")
2. | base::.handleSimpleError(function (e) ...
3. global h(simpleError(msg, call))
Code
class(err)
Output
[1] "callr_status_error" "callr_error" "rlib_error_3_0"
[4] "rlib_error" "error" "condition"
Code
class(err$parent)
Output
[1] "simpleError" "error" "condition"
Code
r_process()
Output
> callr::r(function() Sys.sleep(3), timeout = 1/5)
Error in `get_result(output = out, options)`:
! callr timed out
Type .Last.error to see the more details.
Code
callr::r(function() Sys.sleep(3), timeout = 1 / 5)
Condition
Error:
! callr timed out
Code
rs$read()
Output
$code
[1] 200
$message
[1] "done callr-rs-result-<id>"
$result
NULL
$stdout
[1] ""
$stderr
[1] ""
$error
<callr_timeout_error/callr_error/rlib_error_3_0/rlib_error/error>
Error:
! callr subprocess interrupted
Caused by error:
! interrupt
attr(,"class")
[1] "callr_session_result"
Code
format(err)
Output
[1] "Error: "
[2] "! in callr subprocess."
[3] "Caused by error in `1 + \"\"`:"
[4] "! non-numeric argument to binary operator"
[5] "Type .Last.error to see the more details."
Code
print(err)
Output
<callr_error/rlib_error_3_0/rlib_error/error>
Error:
! in callr subprocess.
Caused by error in `1 + ""`:
! non-numeric argument to binary operator
---
Subprocess backtrace:
1. base::.handleSimpleError(function (e) ...
2. global h(simpleError(msg, call))
Code
format(err)
Output
[1] "Error: "
[2] "! in callr subprocess."
[3] "Caused by error in `1 + \"\"`:"
[4] "! non-numeric argument to binary operator"
[5] "i With remote `$stack`, use `utils::debugger()` to debug it."
[6] "Type .Last.error to see the more details."
Code
print(err)
Output
<callr_error/rlib_error_3_0/rlib_error/error>
Error:
! in callr subprocess.
Caused by error in `1 + ""`:
! non-numeric argument to binary operator
i With remote `$stack`, use `utils::debugger()` to debug it.
Code
r_process()
Output
> withr::local_options(rlib_error_always_trace = TRUE)
> err <- tryCatch(callr::r(function() 1 + ""), error = function(e) e)
> writeLines(format(err, trace = TRUE))
Error:
! in callr subprocess.
Caused by error in `1 + ""`:
! non-numeric argument to binary operator
---
Backtrace:
1. base::tryCatch(callr::r(function() 1 + ""), error = function(e) e)
2. base::tryCatchList(expr, classes, parentenv, handlers)
3. base::tryCatchOne(expr, names, parentenv, handlers[[1L]])
4. base::doTryCatch(return(expr), name, parentenv, handler)
5. callr::r(function() 1 + "")
6. callr:::get_result(output = out, options)
7. callr:::throw(callr_remote_error(remerr, output), parent = fix_msg(remerr[[3]]))
---
Subprocess backtrace:
1. base::.handleSimpleError(function (e)
2. global h(simpleError(msg, call))
Code
r_process()
Output
> callr::r(function() {
+ warning("I have a bad feeling about this")
+ stop("told ya")
+ })
Error:
! in callr subprocess.
Caused by error in `(function () ...`:
! told ya
i See `$stderr` for standard error.
Type .Last.error to see the more details.
> .Last.error
<callr_error/rlib_error_3_0/rlib_error/error>
Error:
! in callr subprocess.
Caused by error in `(function () ...`:
! told ya
i See `$stderr` for standard error.
---
Backtrace:
1. callr::r(function() {
2. callr:::get_result(output = out, options)
3. callr:::throw(callr_remote_error(remerr, output), parent = fix_msg(remerr[[3]]))
---
Subprocess backtrace:
1. base::stop("told ya")
2. | base::.handleSimpleError(function (e)
3. global h(simpleError(msg, call))
> .Last.error$stderr
[1] "Warning message:\nIn (function () : I have a bad feeling about this\n"
Code
r_process()
Output
> callr::r(function() {
+ writeLines("Just some output")
+ stop("told ya")
+ })
Error:
! in callr subprocess.
Caused by error in `(function () ...`:
! told ya
i See `$stdout` for standard output.
Type .Last.error to see the more details.
> .Last.error
<callr_error/rlib_error_3_0/rlib_error/error>
Error:
! in callr subprocess.
Caused by error in `(function () ...`:
! told ya
i See `$stdout` for standard output.
---
Backtrace:
1. callr::r(function() {
2. callr:::get_result(output = out, options)
3. callr:::throw(callr_remote_error(remerr, output), parent = fix_msg(remerr[[3]]))
---
Subprocess backtrace:
1. base::stop("told ya")
2. | base::.handleSimpleError(function (e)
3. global h(simpleError(msg, call))
> .Last.error$stdout
[1] "Just some output\n"
Code
r_process()
Output
> callr::r(function() {
+ writeLines("Just some output")
+ warning("I have a bad feeling about this")
+ stop("told ya")
+ })
Error:
! in callr subprocess.
Caused by error in `(function () ...`:
! told ya
---
Standard output:
Just some output
---
Standard error:
Warning message:
In (function () : I have a bad feeling about this
---
Backtrace:
1. callr::r(function() {
2. callr:::get_result(output = out, options)
3. callr:::throw(callr_remote_error(remerr, output), parent = fix_msg(remerr[[3]]))
---
Subprocess backtrace:
1. base::stop("told ya")
2. | base::.handleSimpleError(function (e)
3. global h(simpleError(msg, call))
Execution halted
Code
err$stderr
Output
[1] "Error in (function () : ouch\n"
Code
readLines(tmp)
Output
[1] "Error in (function () : ouch"
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.