如何确定尝试是否返回错误?

use*_*289 9 r

我正在尝试执行以下操作:

try(htmlParse(ip[1], T),

在哪里我定义为:

ip[1] = paste('http://en.wikipedia.org/wiki/George_Clooney')
Run Code Online (Sandbox Code Playgroud)

我想检查htmlParse是否有效.对于我的列表中的许多名称,将没有维基百科站点,因此如果维基页面不存在,我需要能够检查并用NA替换ip [1].

有人可以告诉我如何做到这一点.我尝试使用命令geterrmessage(),但是我不知道每次更改名人的名字时如何刷新.

目前我有以下内容:

if(!isTRUE(as.logical(grep(ip[1],err)))) {
    ip[1] = NA
    }
    else {
Run Code Online (Sandbox Code Playgroud)

这肯定是错误的,因为它没有运行我想要的逻辑语句.

谢谢

阿马尔

jor*_*ran 25

这个简单的例子可以帮助你,我想:

res <- try(log("a"),silent = TRUE)
class(res) == "try-error"
[1] TRUE
Run Code Online (Sandbox Code Playgroud)

基本思想是try当出现错误时返回(无形地)类"try-error"的对象.否则,res将包含您传递给的表达式的结果try.即

res <- try(log(2),silent = TRUE)
res
[1] 0.6931472
Run Code Online (Sandbox Code Playgroud)

花一些时间?try仔细阅读,包括示例(我猜不是那么简单).正如下面的GSee所述,使用一种更为惯用的方法来检查是否抛出错误inherits(res,'try-error').

  • 如果不使用`tryCatch`,我使用`inherits(res,'try-error')` (8认同)