遇到Bug
是很常见的一件事情,肯定有同学会想:我能不能在遇到Bug
的情况之下,继续运行代码呢?
这就涉及到防御性编程了。
三种最主要的调试工具
traceback()
options(error = browser)
断点
异常处理
try
当程序出现错误的时候,try可以让程序继续正常的执行,你只需要
将可能产生错误的语句包含到try语句里面
tryCatch 条件处理 【防御性编程/R】
tryCatch()
# 是一种处理条件的通用工具,除了错误以外,还可以对警告消息,中断,采取不同的行为
k <- tryCatch(expr = Condition,error=function(e){print('error')},warning=function(e){print('warinig')},
message=function(e){print('message')})
}
mytrycathc(stop(1))
mytrycathc(warning(1))
mytrycathc(message(1))
> mytrycathc(stop(1))
[1] "error"
> mytrycathc(warning(1))
[1] "warinig"
> mytrycathc(message(1))
[1] "message"