迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

Java 错误 java.net.ConnectException

作者:迹忆客 最近更新:2023/07/11 浏览次数:

本篇文章介绍了 Java 中的 java.net.ConnectException 错误。


Java 中的 java.net.ConnectException 错误

java.net.ConnectException 是使用网络时最常见的异常。 它主要发生在客户端、应用程序和服务器之间建立 TCP 连接时。

它是一个经过检查的应用程序,可以使用 try-catch 块在代码中进行处理。 该异常是IO异常的子类。

这是此异常的层次结构:

     java.lang.Object
        java.lang.Throwable
            java.lang.Exception
                java.io.IOException
                    java.net.SocketException
                        java.net.ConnectException

以下是出现此异常的可能原因:

  1. 当任何客户端和服务器不在同一网络中时,两者都应该在互联网或局域网等网络中; 否则,将抛出 ConnectException。
  2. 当服务器没有运行时。 通常,像 3306 (MySQL)、8080 (Tomcat)、27017 (MongoDB) 和 3000 或 4200 (React/Angular) 这样的端口完全关闭或被其他实体占用,就会抛出 ConnectException。
  3. 当安全性不允许通信时,例如,在防火墙的情况下。 在这种情况下,它将抛出 ConnectException。
  4. 当设置被覆盖时,服务器可能正在运行但在端口上列出,它将抛出 ConnectException。
  5. 当连接字符串不正确时,例如 Connection DemoConnection = DriverManager.getConnection(“jdbc:mysql://localhost/:3306<databasename>?” + “user=<username>&password=<password>”);。 它将抛出 ConnectException。
  6. 当错误地给出了错误的端口号时,将会抛出 ConnectException。

让我们尝试一下 ConnectException 的示例:

package jiyik;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.*;
import java.util.*;

public class Example {

    public static void main(String[] args) throws IOException {

        String Host_Name = "127.0.0.1";
        int Port_Number = 808;

        Socket New_Socket = new Socket(Host_Name, Port_Number);

        InputStream Input_Stream = New_Socket.getInputStream();
        InputStreamReader Input_Stream_Reader = new InputStreamReader(Input_Stream);
        int Demo_Data;

        StringBuilder Output_String = new StringBuilder();
        while ((Demo_Data = Input_Stream_Reader.read()) != -1) {
             Output_String.append((char)Demo_Data);
        }
    }
}

上面的代码将抛出 ConnectException,因为端口和 IP 无效。 查看输出:

Exception in thread "main" java.net.ConnectException: Connection refused: connect
    at java.base/sun.nio.ch.Net.connect0(Native Method)
    at java.base/sun.nio.ch.Net.connect(Net.java:579)
    at java.base/sun.nio.ch.Net.connect(Net.java:568)
    at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:588)
    at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
    at java.base/java.net.Socket.connect(Socket.java:633)
    at java.base/java.net.Socket.connect(Socket.java:583)
    at java.base/java.net.Socket.<init>(Socket.java:507)
    at java.base/java.net.Socket.<init>(Socket.java:287)
    at jiyik.Example.main(Example.java:16)

现在,我们可以使用 try-catch 块来处理异常。 由于是检查异常,所以需要在方法中添加 throws。

我们来看看解决方案:

package jiyik;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.*;
import java.util.*;

public class Example {

    public static void main(String[] args) throws IOException {

        String Host_Name = "127.0.0.1";
        int Port_Number = 808;

        try (Socket New_Socket = new Socket(Host_Name, Port_Number)) {

            InputStream Input_Stream = New_Socket.getInputStream();
            InputStreamReader Input_Stream_Reader = new InputStreamReader(Input_Stream);
            int Demo_Data;

            StringBuilder Output_String = new StringBuilder();
            while ((Demo_Data = Input_Stream_Reader.read()) != -1) {
                 Output_String.append((char)Demo_Data);
            }
        }

        catch (ConnectException ex) {

            System.out.println( "The Connect Exception  occured becuase the given hostname and port are invalid : " + ex.getMessage());
        }
    }
}

现在异常已被处理,因此不会使代码崩溃。 查看输出:

The Connect Exception  occured becuase the given hostname and port are invalid : Connection refused: connect

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Java 错误 Java.Net.SocketException: Network Is Unreachable

发布时间:2023/07/16 浏览次数:963 分类:Java

今天我们就来讨论一下Java编程时出现java.net.SocketException: Network is unreachable异常的可能原因及解决方法。Java中出现java.net.SocketException: Network is unreachable的可能原因及解决方案

Java 错误 Java.Net.ConnectException: Connection Timed Out

发布时间:2023/07/16 浏览次数:235 分类:Java

本篇文章将重点介绍如何使用此包进行基本的网络调用以及可能面临和解决的错误。在 Java 中使用 java.net 进行网络调用 进行网络调用是 Java 开发人员每天面临的最重要的事情之一。

Java 错误 Java.Security.InvalidKeyException: Illegal Key Size

发布时间:2023/07/15 浏览次数:644 分类:Java

本篇文章介绍包含 java.security.InvalidKeyException: Illegal key size 的 Java 代码。 然后,我们将了解其可能的原因。最后,它通过消除指定的错误来引导我们找到解决方案。

Java 中错误 Unsupported Major Minor Version

发布时间:2023/07/14 浏览次数:133 分类:Java

出现 Unsupported Major.minor version 错误或 Java.lang.UnsupportedClassVersionError 的原因是运行时 JDK 较低,编译时 JDK 较高。 本篇文章介绍如何解决Java中不支持的major.minor版本。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便