以下のようにURLが有効かどうか判別したいため、下記コードを実行しました。
正しいURLを渡したときは”responseCode”が200になりGOODが出ます。
しかし、有効じゃないURL(https://www.aaaaaaa.co.jp/)を渡したときに、IOExceptionが発生してしまいます。
上手くBADを出力させたいのですが
if文のBADに行かずIOExceptionが出る原因が知りたいです。
何が原因か見当がつかないのですが何かわかる方いますでしょか?
参考
https://www.javaer101.com/ja/article/3343867.html
実行時のコマンド
java converter "https://www.aaaaaaa.co.jp/"
##コード
import java.net.URL; import java.net.MalformedURLException; import java.net.HttpURLConnection; public class converter { public static void main(String[] args) { String path = args[0]; test1(path); } public static void test1(String path) { try { final URL url = new URL(path); HttpURLConnection huc = (HttpURLConnection) url.openConnection(); int responseCode = huc.getResponseCode(); if (responseCode != 404) { System.out.println("GOOD"); } else { System.out.println("BAD"); } }catch (MalformedURLException e){ System.out.println("MalformedURLException"); }catch (IOException e) { e.printStackTrace(); System.out.println("IOException"); } return; } }
##例外時のスタックトレース
java.net.UnknownHostException: www.aaaaaaa.co.jp
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.security.ssl.SSLSocketImpl.connect(Unknown Source)
at sun.security.ssl.BaseSSLSocketImpl.connect(Unknown Source)
at sun.net.NetworkClient.doConnect(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.<init>(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.New(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.HttpURLConnection.getResponseCode(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(Unknown Source)
at converter.test1(converter.java:17)
at converter.main(converter.java:10)
IOException
回答3件
あなたの回答
tips
プレビュー