Как проверить, произошла ли ошибка попытки (возможно, с использованием testthat), когда нежелательно возвращать значение ошибки? - PullRequest
0 голосов
/ 25 января 2019

Я хочу, чтобы функция выдавала ошибку в блоке try, если выполняется условие, и выводила один из входов без каких-либо изменений в случае этой ошибки.Обратите внимание, что я не хочу создавать вывод списка или что-то еще, так как мне нужно иметь согласованный вывод.У меня вопрос, как я могу проверить, что ошибка возникает для некоторых значений, используя testthat?Например, для приведенной ниже функции:

myfunc = function(x,y){
  try({
    if(x<0)
      stop("Negative X")
    y = y+x
  })

  return(y)
}

Я хочу проверить и убедиться, что ошибка возникает для x = -1:

Я пробовал:

library(testthat)
expect_error(myfunc(-1,2))

Но я получаю:

Error in try({ : Negative X
Error: `myfunc(-1, 2)` did not throw an error.
...