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