需要覆盖 URLEncoder.encode 的 UnsupportedEncodingException

问题描述 投票:0回答:2

我需要覆盖

UnsupportedEncodingException
URLEncoder.encode
但没有得到例外。 我的代码是;

try {
    return URLEncoder.encode("!@#", "UTF-8");
} catch (UnsupportedEncodingException e) {
    System.out.println("exeption:"+e.toString());
}

上面的代码我尝试了各种输入,但没有得到

UnsupportedEncodingException

java groovy spock
2个回答
0
投票

潜在的“不支持的编码”是指函数中的第二个参数。 “UTF-8”是一种有效的编码,因此您的代码不会抛出错误。 如果你想抛出异常,你可以将其更改为

URLEncoder.encode("!@#", "UTF-9");
,因为
UTF-9
不是真正的编码。

如果您想知道如何处理异常对象您可以在这里了解更多信息。


0
投票

正如其他人所说,URLEncoder.encode 仅在第二个参数无效时抛出错误。

如果使用字符集 java.nio.charset.StandardCharsets.UTF_8 而不是字符串“UTF-8”,则 URLEncoder.encode 无法抛出 UnsupportedEncodingException,从而无需使用 try-catch 块。

如果没有 try-catch 块,也无需测试它的覆盖率

© www.soinside.com 2019 - 2024. All rights reserved.