2

github API を使用してリポジトリに関する情報を取得しようとしています。これにはRを使用しています。一部の URL は 403 エラーをスローします。残念ながら、これにより関数が停止し、fromJSON 関数が壊れます。fromJSON を再度呼び出すと、常に「クライアント エラー: (403) Forbidden」が発生します。

R で例外を処理して、403 を取得した場合に関数の実行を継続できるようにする方法はありますか?

私の機能は次のとおりです。

getData <- function(start, end) {
  languages = NULL 
  names = NULL
  base_url <- 'https://api.github.com/users/'
  for(num in start:end) {
    url <- print(paste(base_url,num, '/repos', sep='')) 
    df<- fromJSON(url)
    languages <- c(languages, df$language)
    names <- c(names, df$name)
  }
  r = data.frame(languages, names)
  return(r)
}
4

3 に答える 3

1

例外処理のガイドについては、?try および ?tryCatch を参照してください。

次の POC は、404 エラーがどのようfromJSONに続行され、「ok」と出力されるかを示しています。

> try({fromJSON("http://www.google.com/nosuch")}) ; cat("ok\n")
Error in download_raw(txt) : client error: (404) Not Found
ok

からの戻り値をテストしてtry、コードでエラーが発生したかどうかを確認できます。詳細については、ヘルプ ページを参照してください。

于 2015-06-26T19:53:54.980 に答える