ConnectionException 没有消息文本正常吗? 消息一般允许为null吗?
使用 OpenJDK17 和 OpenJDK11。
try
{
HttpRequest httpreq = HttpRequest.newBuilder ().uri (URI.create ("http://blabla.blabla.blabla")).build ();
HttpClient httpclnt = HttpClient.newBuilder ().build ();
HttpResponse <String> httpresp = httpclnt.send (httpreq, HttpResponse.BodyHandlers.ofString ());
}
catch (Exception e)
{
System.out.println ("EXCEPTION: " + e + " - " + e.getMessage ());
}
输出是
EXCEPTION: java.net.ConnectException - null
是的,ConnectionException 没有消息文本,因为异常本身是不言自明的
你可以尝试处理代码中的null:
try {
HttpRequest httpreq = HttpRequest.newBuilder().uri(URI.create("http://blabla.blabla.blabla")).build();
HttpClient httpclnt = HttpClient.newBuilder().build();
HttpResponse<String> httpresp = httpclnt.send(httpreq, HttpResponse.BodyHandlers.ofString());
} catch (Exception e) {
String message = e.getMessage();
if (message == null) {
message = "No message available";
}
System.out.println("EXCEPTION: " + e + " - " + message);
}