[問題] tryCatch除錯測試

看板R_Language作者 (understand?)時間1年前 (2022/06/20 16:22), 編輯推噓2(206)
留言8則, 2人參與, 1年前最新討論串1/1
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 入門(寫過其他程式,只是對語法不熟悉) [問題敘述]: 我想用tryCatch進行網站爬蟲除錯測試, 如果連線失敗後,秀出失敗網址,連線成功的網址另存一個純文字向量 但第一次使用tryCatch,不太熟,目前的問題是如果我有5個網址要測試 第三個網址是連線失敗的網址,tryCatch雖然能成功除錯,連線成功的網址 就只會存到第二個網址就停下來。我不知道我哪裡寫錯了,可否給個建議 [程式範例]: testapi <-c("https://www.youtube.com/", "https://ep.land.nat.gov.tw/", "https://e-service.c77w",#此網址錯誤,會連線失敗 "https://www.cwb.gov.tw/V8/C/", "https://nds.taipower.com.tw/ndsweb/ndft130.aspx") tryCatch({ okapi <- c() for (i in c(1:length(testapi))) { content<- read_html(testapi[i]) okapi[i] <- testapi[i] } }, error = function(e) { print(paste0("連線失敗:",testapi[i]) ) }) okapi --------------- > okapi [1] "https://www.youtube.com/" "https://ep.land.nat.gov.tw/" -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.64.175.127 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1655713335.A.33A.html

06/20 17:20, 1年前 , 1F
tryCatch 要寫在迴圈裏面
06/20 17:20, 1F

06/20 17:20, 1年前 , 2F
tryCatch 中的 expression 如果發生錯誤會呼叫 error 函
06/20 17:20, 2F

06/20 17:20, 1年前 , 3F
數而停止執行
06/20 17:20, 3F

06/20 17:21, 1年前 , 4F
所以你的寫法中,迴圈就斷了
06/20 17:21, 4F

06/20 17:21, 1年前 , 5F
如果你是寫在迴圈裏面,for (i in ...) tryCatch(...)
06/20 17:21, 5F

06/20 17:21, 1年前 , 6F
那有tryCatch 的時候,R系統不會拋出錯誤,迴圈會繼續
06/20 17:21, 6F

06/20 17:22, 1年前 , 7F
如果沒有tryCatch, 發生錯誤後R會中斷所有正在跑的敘述
06/20 17:22, 7F

06/20 18:51, 1年前 , 8F
原來有除錯函數,逛別人問題也能學到知識
06/20 18:51, 8F
文章代碼(AID): #1Yi2utCw (R_Language)
文章代碼(AID): #1Yi2utCw (R_Language)