Como dizer ao lapply para ignorar um erro e processar a próxima coisa na lista?

Eu tenho um exemplo de função abaixo que lê em uma data como uma seqüência de caracteres e retorna como um objeto de data. Se ele ler uma sequência que não pode ser convertida em uma data, retornará um erro.

testFunction <- function (date_in) {
    return(as.Date(date_in))
    }

testFunction("2010-04-06")  # this works fine
testFunction("foo")  # this returns an error

Agora, quero usar lapply e aplicar esta função em uma lista de datas:

dates1 = c("2010-04-06", "2010-04-07", "2010-04-08")
lapply(dates1, testFunction)  # this works fine

Mas se eu quiser aplicar a função em uma lista quando uma string no meio de duas datas boas retornar um erro, qual é a melhor maneira de lidar com isso?

dates2 = c("2010-04-06", "foo", "2010-04-08")
lapply(dates2, testFunction)

Suponho que eu queira tentar pegar lá, mas existe uma maneira de capturar o erro da string "foo" enquanto solicita ao lapply que continue e leia a terceira data?

questionAnswers(3)

yourAnswerToTheQuestion