Como alguém "lança" um erro no R? Eu tenho uma função que leva um quadro de dados e alguns nomes de coluna e faz coisas com eles. Se as colunas não existirem, quero que a função pare e pare todas as funções, dependendo dela.
Eu olhei recover
e browse
e traceback
mas, bem, eles pareciam estar perto, mas não o que eu estou procurando.
r
error-handling
forkandwait
fonte
fonte
Respostas:
Veja
help(tryCatch)
:e mais tarde em "Veja também":
então você provavelmente quer
stop
.fonte
traceback()
após o erro para ver o que deu errado). Usarstop
noerror
argumento detryCatch
irá atrapalhar o rastreamento. No entanto, ofinally
argumento permitirá lançar uma mensagem adicional e manter o rastreamento útil. Não exatamente sobre o assunto, mas acho importante o suficiente para justificar alguns desvios e uma ameaça de moderação, expulsando esse comentário pela janela. :-)Exemplo simples:
fonte
Além das funções básicas mencionadas por Dirk:
O pacote R.oo possui uma funcionalidade adicional de manipulação de exceções, incluindo uma função throw () que é muito útil. Você pode capturar exceções com as funções usuais try ou trycatch:
Você pode ler mais sobre isso aqui: http://www1.maths.lth.se/help/R/R.oo/
fonte
plot
plota uma função,try
stop
warn
tudo funciona como você esperaria, e quase tudo o que eu quero fazer é uma linha.Na verdade, a função
stopifnot
é muito conveniente para implementar verificações de integridade no seu código. Ele pega várias expressões lógicas e retorna um erro se alguma delas for avaliada como falsa.Exemplo: para verificar se a coluna 'c' existe no dataframe 'df':
Isso lançará o seguinte erro:
fonte
assert(...)
...Você pode verificar se a coluna existe e fazer o que quiser.
Suponha um
data.frame
nomedf1
e verifique secol1
existe uma coluna :ou
Por exemplo
fonte