Criando funções que saibam lidar com erros

Olá.
No contexto de boas praticas, qual(is) método(s) são os mais indicados para que nossas funções não interrompam o processo ao se depararem com algum erro? Eu tenho usado a função tryCatch() e recém descobri a possibly() e outras da familia no purrr::.

São essas mesmas as opções? Há outras? Qual usar depende do contexto ou alguma sempre se sobressai?

Desde já agradeço.

Resumindo aqui a resposta que demos em aula: essas duas são mesmo as melhores opções e o uso depende muito de qual o seu objetivo. Se você quiser capturar o erro e agir sobre ele, melhor a tryCatch(); nas outras situações é melhor a possibly().

Nossa única outra recomendação é evitar ao máximo o uso dessas funções dentro de código “permanente” (ou seja, código que ficará disponível para outras pessoas) já que elas podem dificultar a identificação de erros.

1 Curtida