确保图形设备关闭

And*_*dre 5 plot r

我正在关闭设备(这里:pdf())我正在使用dev.off()绘制我的函数的末尾.但是,如果函数/循环由于错误而终止,则设备保持打开状态.当一个函数被反复调用时,这会导致很多开放设备; 和文件句柄.

即使功能失败,如何确保设备关闭?

我记得我曾经看过如何做到这一点,但我不记得了.

Jos*_*ien 10

on.exit()就像这样的情况.在非交互式设置中打开(文件或其他)连接时,最好使用它.

f <- function() {
    pdf(tempfile()) # tempfile() so example doesn't clutter up working directory.
    on.exit(dev.off())
    plot(randomNonExistentObjectName)
}

f()
# Error in plot(randomNonExistentObjectName) : 
#   object 'randomNonExistentObjectName' not found

dev.list()
# NULL
Run Code Online (Sandbox Code Playgroud)