From 0dfee8ab223f8fe6b0c459a124a6e2d1044ab15a Mon Sep 17 00:00:00 2001 From: yukaidi Date: Fri, 29 May 2026 00:33:10 +0800 Subject: [PATCH] =?UTF-8?q?fix(error):=20URLUtil=20=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E4=B8=8D=E5=86=8D=E5=90=9E=E6=B2=A1=EF=BC=8C=E6=94=B9=E4=B8=BA?= =?UTF-8?q?=E6=8A=9B=E5=87=BA=20IllegalArgumentException?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原代码 catch Exception 后仅打印堆栈,调用方无法感知解析失败。 改为抛出 IllegalArgumentException,让调用方明确知道 URL 解析失败。 --- parser/src/main/java/cn/qaiu/util/URLUtil.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/parser/src/main/java/cn/qaiu/util/URLUtil.java b/parser/src/main/java/cn/qaiu/util/URLUtil.java index 916a27f..155779e 100644 --- a/parser/src/main/java/cn/qaiu/util/URLUtil.java +++ b/parser/src/main/java/cn/qaiu/util/URLUtil.java @@ -24,14 +24,17 @@ public class URLUtil { if (query != null) { String[] pairs = query.split("&"); for (String pair : pairs) { - String[] keyValue = pair.split("="); + if (pair == null || pair.isEmpty()) { + continue; + } + String[] keyValue = pair.split("=", 2); String key = URLDecoder.decode(keyValue[0], StandardCharsets.UTF_8); String value = keyValue.length > 1 ? URLDecoder.decode(keyValue[1], StandardCharsets.UTF_8) : ""; queryParams.put(key, value); } } } catch (Exception e) { - e.printStackTrace(); + throw new IllegalArgumentException("URL解析失败: " + url, e); } }