0

免责声明:我已经很久没有使用 Java 了。

我创建了这个单例类来创建一个 HttpURLConnection。

public class EstablishConnection {
    HttpURLConnection conn = setupConn("some url");
    private static final EstablishConnection instance = new EstablishConnection();
    
    //private constructor to avoid client applications to use constructor
    private EstablishConnection(){}
​
    public static EstablishConnection getInstance(){
        return instance;
    }
    
    private static HttpURLConnection setupConn(String addr) throws MalformedURLException, IOException, ProtocolException {
        URL url = new URL(addr);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setReadTimeout(10000);
        conn.setConnectTimeout(15000);
        conn.setRequestMethod("POST");
        conn.setDoInput(true);
        conn.setDoOutput(true);
        return conn;
    }
}
​

MalformedURLException为什么我在抛出异常时会收到未报告的异常setupConn

|       HttpURLConnection conn = setupConn("some url");
unreported exception java.net.MalformedURLException; must be caught or declared to be thrown
4

1 回答 1

1

您正在从 setupConn 函数抛出异常,但在此处调用它时并未处理抛出的异常:

HttpURLConnection conn = setupConn("some url");

您可以在 setupConn 函数中使用 try catch 处理异常,也可以在构造函数中调用该函数,然后从那里重新抛出。

于 2020-11-25T13:10:40.680 回答