From 4c54c359ae4995e94c057e3f5f1314be3283de08 Mon Sep 17 00:00:00 2001 From: SunWenxuan <3148628230@qq.com> Date: Tue, 19 May 2026 11:19:20 +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'w11'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- w11/ASiteCrawlStrategy.java | 15 +++++++++++++++ w11/CrawlException.java | 14 ++++++++++++++ w11/NetworkException.java | 9 +++++++++ w11/ParseException.java | 10 ++++++++++ w11/UnsupportedSiteException.java | 8 ++++++++ 5 files changed, 56 insertions(+) create mode 100644 w11/ASiteCrawlStrategy.java create mode 100644 w11/CrawlException.java create mode 100644 w11/NetworkException.java create mode 100644 w11/ParseException.java create mode 100644 w11/UnsupportedSiteException.java diff --git a/w11/ASiteCrawlStrategy.java b/w11/ASiteCrawlStrategy.java new file mode 100644 index 0000000..93daa9a --- /dev/null +++ b/w11/ASiteCrawlStrategy.java @@ -0,0 +1,15 @@ +package com.example.datacollect; + +// 先定义爬虫策略接口(必须先建这个,否则ASiteCrawlStrategy会报错) +public interface ASiteCrawlStrategy { + void crawl(String url); +} + +// A网站爬虫策略类(实现上面的接口) +class ASiteCrawlStrategyImpl implements CrawlStrategy { + @Override + public void crawl(String url) { + // 先写简单逻辑:打印爬取信息 + System.out.println("正在爬取A网站:" + url); + } +} \ No newline at end of file diff --git a/w11/CrawlException.java b/w11/CrawlException.java new file mode 100644 index 0000000..ce67343 --- /dev/null +++ b/w11/CrawlException.java @@ -0,0 +1,14 @@ +package com.example.datacollect; + +// 根异常:继承RuntimeException(Unchecked异常),爬虫项目所有异常都继承它 +public class CrawlException extends RuntimeException { + // 构造器1:只传错误信息 + public CrawlException(String message) { + super(message); + } + + // 构造器2:传错误信息+原始异常(方便排查根因) + public CrawlException(String message, Throwable cause) { + super(message, cause); + } +} \ No newline at end of file diff --git a/w11/NetworkException.java b/w11/NetworkException.java new file mode 100644 index 0000000..1516cd5 --- /dev/null +++ b/w11/NetworkException.java @@ -0,0 +1,9 @@ +package com.example.datacollect; + +// 网络异常:继承根异常CrawlException +public class NetworkException extends CrawlException { + public NetworkException(String message) { + // 给错误信息加前缀,方便定位 + super("网络请求失败:" + message); + } +} diff --git a/w11/ParseException.java b/w11/ParseException.java new file mode 100644 index 0000000..b63498e --- /dev/null +++ b/w11/ParseException.java @@ -0,0 +1,10 @@ +package com.example.datacollect; + +// 解析异常:继承根异常CrawlException +public class ParseException extends CrawlException { + public ParseException(String message) { + super("数据解析失败:" + message); + } +} + + diff --git a/w11/UnsupportedSiteException.java b/w11/UnsupportedSiteException.java new file mode 100644 index 0000000..6af593e --- /dev/null +++ b/w11/UnsupportedSiteException.java @@ -0,0 +1,8 @@ +package com.example.datacollect; + +// 不支持的网站异常:继承根异常CrawlException +public class UnsupportedSiteException extends CrawlException { + public UnsupportedSiteException(String siteKey) { + super("不支持的网站类型:" + siteKey); + } +} \ No newline at end of file