gpt4 book ai didi

java - 为什么连接终止时不抛出异常?

转载 作者:搜寻专家 更新时间:2023-11-01 03:37:52 24 4
gpt4 key购买 nike

<分区>

我来这里是为了解决我面临的问题。希望能得到专家的帮助。

下面是一个简单的java文件下载器的代码。我想在下载文件的过程中连接断开时检测异常。现在,我运行代码并在下载文件的过程中,我使用键盘 wifi 关闭按钮关闭了我的 wifi。这样做程序会永远挂起,不会抛出任何异常,也不会终止。它似乎永远阻塞。首先我的困惑是为什么不抛出异常?其次,在下面的代码中,您可以看到这一行//con.setReadTimeout(2000);目前已被注释掉。删除评论并运行程序,现在如果通过关闭 wifi 连接在中间中断,那么它会等待 2 秒,然后如果它无法读取,那么它会终止而不会抛出异常。那么,在这种情况下,为什么它只是终止而不抛出任何异常?我对这种行为感到非常困惑。我希望我能得到一些帮助。非常感谢!

import java.io.FileOutputStream;
import java.net.URL;
import java.net.URLConnection;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
import java.util.*;

public class Main {
public static void main(String[] args) {

try{

URL website = new URL("http://128f1.downloadming1.com/bollywood%20mp3/Jai%20Ho%20(2014)/06%20-%20Naacho%20Re%20-%20DownloadMing.SE.mp3");

URLConnection con = website.openConnection();


//con.setReadTimeout(2000);



ReadableByteChannel rbc = Channels.newChannel(con.getInputStream());
FileOutputStream fos = new FileOutputStream("song.mp3");

fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);


}
catch(Exception e){

System.out.println("got here");
e.printStackTrace();
}



System.out.println("Done downloading...");

}
}

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com