gpt4 book ai didi

Java 异常必须被捕获或声明为抛出

转载 作者:行者123 更新时间:2023-12-02 03:14:42 25 4
gpt4 key购买 nike

我正在尝试使用本手册学习 Java 网络 - http://duta.github.io/writing/StartingNetworking.pdf

为什么我在这一行得到“必须被捕获或声明为抛出”(这是手册中的 ServerSocket 部分)。为什么手册中的代码被认为可以工作,但我的却不能?

Socket socket = serverSocket.accept();

完整代码:

public class ChatServer
{
public static void main(){
ServerSocket serverSocket = null;
boolean successful = false;
int port = 8080;
try{
serverSocket = new ServerSocket(port);
successful = true;
}catch(IOException e){
System.err.println("Port " + port + "is busy, try a different one");
}
if(successful){
Socket socket = serverSocket.accept();
PrintWriter toClient = new PrintWriter(socket.getOutputStream(), true);
BufferedReader fromClient = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String toProcess;
while((toProcess = fromClient.readLine()) != null)
{
if(toProcess.equalsIgnoreCase("Stop"))
break;
String processed = "Echo: " + toProcess;
toClient.println(processed);
}
toClient.close();
fromClient.close();
socket.close();
serverSocket.close();
}

}
}

最佳答案

检查异常必须被捕获或声明。未经检查的异常(RuntimeException 或其任何子异常)不必捕获或声明。

您对 serverSocket.accept() 的调用可能会引发已检查的异常。查看它的签名,它显示“抛出...异常”,您必须使用 catch block 捕获它或声明它,就像在accept() 方法上所做的那样。

关于Java 异常必须被捕获或声明为抛出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40486405/

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