java - 未报告的异常 java.io.IOException

标签 java exception

这段代码有什么问题

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

/**
 *
 * @author Master
 */
public class Server {
    try
    {
    ServerSocket S = new ServerSocket(3333);
    Socket So = S.accept();
    }
    catch(IOException e)
    {
        System.out.println("IOError");
    }

}

首先,我编写了没有 try catch 的代码,然后我得到了一个 unreported exception java.io.IOException; must be caught or declared to be thrown 错误,但 Netbeans 没有建议我添加 try-catch block 。现在我手动添加了 try-catch block ,但它仍然显示错误并建议我必须添加另一个 try-catch block !

alt text

最佳答案

您正在尝试在类的顶层添加一个 try block - 您不能那样做。 Try block 必须在方法或初始化程序 block 中。

如果您真的想要在构造时创建服务器套接字,请将代码放在构造函数中:

public class Server {

    private ServerSocket serverSocket;
    private Socket firstConnection;

    public Server {
        try
        {
            serverSocket = new ServerSocket(3333);
            firstConnection = serverSocket.accept();
        }
        catch(IOException e)
        {
            System.out.println("IOError");
        }
    }
}

当然,我假设您将拥有真正的异常处理(或重新抛出),而不是仅仅捕获 IOException 并继续?

关于java - 未报告的异常 java.io.IOException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3885045/

相关文章:

java - 线程卡在 getDeclaredConstructors 中的可能原因?

java - 编写打印 1 2 ... userNum 的 For 循环?

java - Netbeans "default config"用于 Maven 项目

java - 如何处理通过套接字连接发送多条消息?

java - 定义 HibernateExceptionTranslator : No persistence exception translators found in bean factory

java - CopyOnWriteArrayList 抛出 CurrentModificationException

java - 无法捕获 NumberFormatException

c++ - 当我忘记捕获异常时,如何强制编译器生成错误或警告

java - AspectJ 如何捕获 NoResultException 并返回 null

java - 使用的是哪个 Java