R 中的捕获错误

Trapping error in R

一个非常基本的问题。但我无法将其应用于我的代码。因此在这里寻求帮助

我在 运行 此 R 代码

时收到下面提到的错误
knn.pred <- knn(tdm.stack.nl_train, tdm.stack.nl_Test, tdm.cand_train, prob = TRUE)

>     Error in knn(tdm.stack.nl_train, tdm.stack.nl_Test, tdm.cand_train, prob = TRUE) : 
>       dims of 'test' and 'train' differ.

我想打印下面给出的错误信息。但是我无法做到这一点。我还不擅长编写函数。请帮忙。

   out <- tryCatch( when error = {print('New words seen in testing data')})

你可以这样做:

tryCatch(knn.pred <- knn(tdm.stack.nl_train, tdm.stack.nl_Test, tdm.cand_train, prob = TRUE),
         error = function(e) {
           stop('New words seen in testing data')
         })

这显示为:

 tryCatch(knn.pred <- knn(tdm.stack.nl_train, tdm.stack.nl_Test, tdm.cand_train, prob = TRUE),
          error = function(e) {
            stop('New words seen in testing data')
            })

 Error in value[[3L]](cond) : New words seen in testing data 

更好更易用try:

knn.pred <- try(knn(tdm.stack.nl_train, tdm.stack.nl_Test, tdm.cand_train, prob = TRUE))

if (inherits(knn.pred, "try-error") { # error management
  print('New words seen in testing data')
}