Избегайте оставлять используемые устройства

#r #error-handling #pdf-generation

#r #обработка ошибок #pdf-генерация

Вопрос:

Я хочу писать в формате PDF с помощью функции.

 pdf("termolayout.pdf")
generate_termolayout(db) 
   #This functions prints thermolayouts, but when the db is corrupted, generates errors
dev.off()
  

Как мне обеспечить выполнение R dev.off() даже при generate_termolayout сбое?

Комментарии:

1. взгляните на tryCatch()

Ответ №1:

Используйте on.exit :

 mypdf <- function() {
  pdf("termolayout.pdf")
  on.exit(dev.off())
  stop("An error.")
}

mypdf()
#Error in mypdf() : An error.
dev.cur()
#RStudioGD 
#2