【问题标题】:Unable to create a ServerSocket in eclipse (java)无法在eclipse(java)中创建ServerSocket
【发布时间】:2010-10-20 09:12:48
【问题描述】:

我对 Java 编程非常陌生,但是在 .NET(c# 和 vb.net)方面有很多经验。

我正在尝试在 Eclipse IDE 中创建 serversocket 类的新实例,当我键入以下代码时,它给了我一个“未处理的异常类型 IOException”,我什至还没有尝试运行该代码!!

我不明白我的代码在运行前是如何出现异常的,或者我可以做些什么来修复它。

有人可以帮我吗?

违规代码:

ServerSocket server = new ServerSocket(1234, 5, InetAddress.getLocalHost());

【问题讨论】:

    标签: java android eclipse network-programming


    【解决方案1】:

    如果在java文件中编辑时给出“Unhandled exception type IOException”,则表示需要附上这条语句
    在 try-catch 块中

    try{

    ServerSocket server = new ServerSocket(1234, 5, InetAddress.getLocalHost());
    }catch(IOException ex){

    e.printStackTrace();
    }

    【讨论】:

    • 感谢 viv.. 这对 java 编码来说是正常的吗?处理可能在实际发生之前发生的异常?
    • 这是一个很好的做法,但有些地方需要处理特定类型的异常。一般来说,您应该将所有代码包含在 try-catch 中,这是一种很好的做法。
    【解决方案2】:

    这是 Java 语言的一个特性,称为Checked Exceptions。基本上,您调用的代码中存在可以在编译时确定的异常。 Java 语言设计者认为强制您处理它们是谨慎的做法。

    在这种情况下,ServerSocket 类构造函数在其方法签名中声明它会引发 IOException。

    有两种方法可以消除编译错误。

    您可以将代码包装在 try/catch 中。

    try
    {
        ServerSocket server = new ServerSocket(1234, 5, InetAddress.getLocalHost());
    } catch (IOException e)
    {
        // handle exception
    }
    

    或者,您可以将责任传递给调用方法。例如,假设您在名为createSocket() 的方法中调用了ServerSocket 构造函数。你会像这样声明你的方法

    public ServerSocket createSocket() throws IOException
    {
        ServerSocket server = new ServerSocket(1234, 5, InetAddress.getLocalHost());
        return server;
    }
    

    在这种情况下,您只是将责任移到调用链上,但有时这是有道理的。

    这在 Java 语言中很常见,以至于 Eclipse 提供了上述两个选项作为快速修复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-04
      • 1970-01-01
      • 2012-02-21
      • 2023-03-29
      • 2015-12-11
      • 2017-02-03
      • 1970-01-01
      相关资源
      最近更新 更多