我在R's Shiny中有一个应用程序。我想处理消息,以便用户看不到发生了什么错误。我知道通过
tags$style(type="text/css",
".shiny-output-error { visibility: hidden; }",
".shiny-output-error:before { visibility: hidden; }"
),
Run Code Online (Sandbox Code Playgroud)
我可以完全禁用错误消息,但我想向用户显示一条消息,例如
发生错误。请联系管理员。
无论何时出现任何类型的消息(并且仍将原始错误消息保留在日志中)。有任何想法吗?
options(shiny.sanitize.errors = TRUE)您可以在应用程序中的某个位置添加。然后,所有错误消息都将替换为通用错误消息:
错误:发生错误。检查您的日志或联系应用程序作者以获得澄清。
如果您确实希望特定错误未经过滤地传递,则可以使用base::stop(shiny::safeError(e))而不是仅使用base::stop(e),其中e是错误字符串或类为“error”的对象。
参考: https: //shiny.rstudio.com/articles/sanitize-errors.html