我在看core java网络编程那章的时候有一个设置套接字超时s.setSoTimeOut()函数,他说如果超时会抛出SocketTimeoutException,但是我try catch后却捕获不到异常,但是用Exception却能捕获到异常
这是为什么
import java.net.*;
import java.io.*;
import java.util.*;
public class TimeoutServerTest { public static void main(String[] args) {
try{
ServerSocket server = new ServerSocket(8888);
Socket s = server.accept();
s.setSoTimeout(5000);
Scanner in = new Scanner(s.getInputStream());
String line = in.nextLine();
System.out.println(line);
}catch(SocketTimeoutException e){

System.out.println("连接超时1");

}
catch(Exception e ){
System.out.println("连接超时2"); }
}
}