From eb6325e83992e04b9c21d8643351c956f2d1ed5b Mon Sep 17 00:00:00 2001 From: HuangZhikai <386754646@qq.com> Date: Sun, 31 May 2026 14:51:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3?= =?UTF-8?q?=20'project/exceptinhandle'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exceptinhandle/ParseExceptionHandler.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 project/exceptinhandle/ParseExceptionHandler.java diff --git a/project/exceptinhandle/ParseExceptionHandler.java b/project/exceptinhandle/ParseExceptionHandler.java new file mode 100644 index 0000000..cb7547b --- /dev/null +++ b/project/exceptinhandle/ParseExceptionHandler.java @@ -0,0 +1,27 @@ +package com.crawler.exception.handler; + +import com.crawler.exception.DataExtractException; +import com.crawler.exception.HtmlParseException; +import com.crawler.exception.ParseException; +import com.crawler.exception.ExceptionHandler; +import com.crawler.view.CrawlerView; + +public class ParseExceptionHandler implements ExceptionHandler { + @Override + public void handle(Exception e, CrawlerView view) { + if (e instanceof HtmlParseException) { + HtmlParseException ex = (HtmlParseException) e; + view.showErrorMessage("HTML解析失败,URL: " + ex.getSourceUrl()); + } else if (e instanceof DataExtractException) { + DataExtractException ex = (DataExtractException) e; + view.showErrorMessage("数据提取失败,字段: " + ex.getExtractField()); + } else { + view.showErrorMessage("解析异常: " + e.getMessage()); + } + } + + @Override + public Class getSupportedExceptionType() { + return ParseException.class; + } +} \ No newline at end of file