提问人:pietrodito 提问时间:9/28/2023 更新时间:9/28/2023 访问量:34
为什么在发送错误消息时闪亮?
Why shiny breaks when messaging an error?
问:
这句简单的台词似乎没有造成任何伤害:
tryCatch( stop(), error = function(e) { message(e) } )
但是它打破了一个闪亮的应用程序,而这两行却完美地工作:
tryCatch( stop(), error = function(e) { print(e) } )
tryCatch( stop(), error = function(e) { message(e |> as.character()) } )
我不明白这里发生了什么?
最小应用程序
library(shiny)
ui <- fluidPage(
actionButton("p", "error with print"),
actionButton("m", "error with message"),
actionButton("c", "error with message as character")
)
server <- function(input, output, session) {
observeEvent(input$p, {
tryCatch( stop(), error = function(e) { print(e) } )
})
observeEvent(input$m, {
tryCatch( stop(), error = function(e) { message(e) } )
})
observeEvent(input$c, {
tryCatch( stop(), error = function(e) { message(e |> as.character()) } )
})
}
shinyApp(ui, server)
答: 暂无答案
评论
simpleError
message(simpleError("test"))
message(conditionMessage(e))
message(e)
e
message(...)
print(.makeMessage(...))
observeEvent()
tryCatch(stop("my error m"), error = function(e) { browser():message(e) } )
e
structure
dput(e)
structure(list(message = "my error m", call = doTryCatch(return(expr), name, parentenv, handler)), class = c("simpleError", "error", "condition"))
message()
e$message
geterrmessage()
print(.makeMessage(e))
message
()
message()