我正在尝试使用闪亮的验证功能来捕获读取错误并在读取上传的csv文件时显示自定义的错误消息,而不是让闪亮的转发默认的read.csv错误消息。 这是简单的代码
validate(need(try(sd <- read.csv(file = sdFile[1], stringsAsFactors = FALSE)), "Error reading the file"))
当csv文件中没有格式问题时,代码正常工作。但是当csv文件出现问题时,代码仍然会返回默认错误消息(红色字体),例如,错误:未选择未定义的列,但不是自定义消息。这里有问题吗?谢谢!
答案 0 :(得分:3)
如果我这样做,我认为它实际上是打印出来的:
library(shiny)
validate(need(try(sd <- read.csv(file = "mtcars1.csv",
stringsAsFactors = FALSE)),
Error reading the file !!!"))
得到以下特性:
Error in file(file, "rt") : cannot open the connection In addition: Warning message: In file(file, "rt") : cannot open file 'mtcars1.csv': No such file or directory Error: Error reading the file !!!
我明白了 - 请注意你的消息是在最后一行。
您可以使用supressWarnings
来抑制警告:
library(shiny)
suppressWarnings(
+ validate(need(try(sd <- read.csv(file = "mtcars1.csv",
stringsAsFactors = FALSE)),
"Error reading the file !!!!")))
得到以下特性:
Error in file(file, "rt") : cannot open the connection Error: Error reading the file !!!!
或者您可以使用此信息(使用tryCatch
代替try
)来阻止除您的信息以外的所有内容:
library(shiny)
suppressWarnings(
validate(need(tryCatch(sd <- read.csv(file = "mtcars1.csv",
stringsAsFactors = FALSE), error=function (e){}),
"Error reading the file !!!!")))
产生
Error: Error reading the file !!!