2012-07-03 16 views
9

私は、次の操作を実行しようとしています:エラーが返されたかどうかを確認するにはどうすればよいですか?

try(htmlParse(ip[1], T)、私のように定義

:私はhtmlParseが働いていたかいないかどうかを確認したい

ip[1] = paste('http://en.wikipedia.org/wiki/George_Clooney') 

を。私のリストの多くの名前については、ウィキペディアのサイトは存在しないので、wikiページが存在しない場合は、ip [1]を確認してNAに置き換える必要があります。

どうすればいいですか?私はgeterrmessage()コマンドを使ってみましたが、有名人の名前を変更するたびにそれをフラッシュする方法がわかりません。

現在、私は次のようにあります

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

それは私がしたい論理文が実行されていないとして、これは間違いなく間違っています。

おかげ

アマール

答えて

21

この単純な例では、あなたを助ける必要があり、私は思う:

res <- try(log("a"),silent = TRUE) 
class(res) == "try-error" 
[1] TRUE 

基本的な考え方は、(目に見えない)try戻っクラスのオブジェクトである「してみてください、エラーを"エラーが発生した場合。そうでない場合、resには、tryに渡す式の結果が含まれます。すなわち

res <- try(log(2),silent = TRUE) 
res 
[1] 0.6931472 

は(彼らは可能性として単純ではない、私は推測する)例を含め、慎重に?tryを読んでいくつかの時間をお過ごしください。 GSeeが以下に述べるように、エラーがスローされたかどうかを確認するためのより慣れた方法は、inherits(res,'try-error')を使用することです。

+6

私は '継承(RES、「エラーをしてみてください」)' 'tryCatch' – GSee

+0

@GSee感謝を使用していない場合は使用します、はい、それは間違いなく良いです。 – joran

0

私はwikiからすべての名前を(既存かどうかに関わらず)ダウンロードし、別々のファイルに保存しようとします。Wikipediaにはこの正確な名前の記事はなく、既存のもの私は真の価値を得るだろう。このようにして、パーサーが動作したかどうか、または名前が存在しなかったかどうかを確認します。さらに、ダウンロードしたファイルをサイズに基づいてソートすることもできます。破損したものはサイズが小さくなります。

Wikipedia article for a fictitious person さらに私は、論理的な状態を治療するためにtryCatch機能を使用します。

x<-3 
tryCatch(x>5,error=print("this is an error")) 
関連する問題