为什么我已经抛出异常 java.net.MalformedURLException 却收到未报告的异常?
Why am I getting a unreported exception java.net.MalformedURLException when I'm throwing it already?
免责声明:我已经 Java 很久没做了。
我创建了这个单例 class 来创建一个 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;
}
}
为什么我在 setupConn
中抛出异常时会收到未报告的 MalformedURLException
异常?
| HttpURLConnection conn = setupConn("some url");
unreported exception java.net.MalformedURLException; must be caught or declared to be thrown
您正在从 setupConn 函数中抛出异常,但在此处调用它时并未处理抛出的异常:
HttpURLConnection conn = setupConn("some url");
您可以在 setupConn 函数中使用 try catch 处理异常,或者您可以在构造函数中调用该函数,然后从那里重新抛出。
免责声明:我已经 Java 很久没做了。
我创建了这个单例 class 来创建一个 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;
}
}
为什么我在 setupConn
中抛出异常时会收到未报告的 MalformedURLException
异常?
| HttpURLConnection conn = setupConn("some url");
unreported exception java.net.MalformedURLException; must be caught or declared to be thrown
您正在从 setupConn 函数中抛出异常,但在此处调用它时并未处理抛出的异常:
HttpURLConnection conn = setupConn("some url");
您可以在 setupConn 函数中使用 try catch 处理异常,或者您可以在构造函数中调用该函数,然后从那里重新抛出。