iT邦幫忙

2026 iThome 鐵人賽

DAY 11
0
AI 自動化

RPA流程自動化應用系列 第 11 篇

【Day 11】導入 Try-Catch 單筆例外隔離以防執行時出錯

  • 分享至 

  • xImage
  •  

但當流程進入多筆大量抓取(例如連續跑 50 或 100 筆)時,一個真實世界的殘酷問題立刻浮現:
只要其中一筆專利網頁載入過慢、或是某個欄位格式異常導致報錯,整個流程就會瞬間中斷崩潰!」
一、為什麼批次爬蟲極度脆弱?
檢視我們先前的迴圈結構,每一筆專利都要經歷:

  • 1.點擊進詳細頁。
  • 2.擷取申請日、申請人、發明人、優先權、摘要等多個欄位。
  • 3.判定路由並組裝 JSON。
  • 4.點擊按鈕返回清單。
    在這段長鏈條中,只要遇到以下常見狀況,沒有防護的流程就會立即拋出未處理例外(Unhandled Exception)並強制終止:
  • 1.欄位結構改變或缺漏:部分專利沒有優先權或代理人,文字擷取元件等待超時(Timeout)。
  • 2.DOM 載入延遲:網頁點擊進去後伺服器卡住,下一個 Click 找不到目標元素。
  • 3.返回失敗:抓完資料後「回檢索結果」按鈕沒點到,導致下一輪在錯誤的畫面上亂點。

二、導入 Try-Catch 例外隔離
為了達到「單筆失敗不影響整批作業」,我們在 For Each Row 內部將單筆作業完整包覆進 Try-Catch 元件中:

  1. Try 區塊(正常處理流程)
    將原本迴圈內的所有動作(進入詳細頁 ➔ 擷取各欄位 ➔ 外部比對 ➔ 組裝 JSON ➔ 收集至 List ➔ 點擊回清單)全部移入 Try 區塊。
  2. Catch 區塊(例外捕獲與隔離)
    捕獲 System.Exception:
    記錄錯誤日誌:使用 Log Message 或 WriteLine 印出當前失敗的案號與錯誤原因:
"==> [錯誤警告] 案號: " + currentCaseId + " 抓取異常,原因: " + exception.Message

錯誤分流存檔:將失敗的案號與時間寫入獨立的 listErrorLog,避免抓取遺漏卻無從稽核。
安全復原(Fallback):若在詳細頁卡住,嘗試強制點擊「回檢索結果」或重新導航回搜尋頁,確保機器人能回到清單起點繼續處理下一筆。

今日成果(嘗試讓他失敗產生報錯日誌)
https://ithelp.ithome.com.tw/upload/images/20260925/20178363hU73gnLJ5Z.jpg


上一篇
【Day 10】 配置外部化(Config-Driven)
下一篇
【Day 12】歷史資料不重覆抓取與首跑限流保護
系列文
RPA流程自動化應用 共 16 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言