6

サーバーからデータを取得しようとしています。時々私のコードは。のために失敗しますUnknownHostException。何故ですか?この問題の原因は何ですか?

4

4 に答える 4

4

これは、DNSサーバーで一時的な中断が発生した場合に発生する可能性があります。DNSサーバーをより堅牢にしたり、別のサーバーを探したりする以外に、ホスト名の代わりに完全なIPアドレスを使用することもできます。このように、ホスト名に基づいてIPアドレスを検索する必要はありません。ただし、IPアドレスは時々変更される可能性があるため、DNSの問題を修正し、DNSを優先します。

于 2010-05-25T17:05:08.797 に答える
2

UnknownHostExceptionは、指定されたホストをIPアドレスに変換できなかったことを示します。DNSサーバーに問題がある可能性があります。

于 2010-05-25T17:06:05.407 に答える
1

DNS解決が断続的に失敗する場合は、例外をキャッチして、名前解決が得られるまで再試行してください。制御できるのは、制御できるものだけです...また、DNSサーバーを制御/修正できない場合は、アプリを、風変わりなDNSサーバーを処理するのに十分な堅牢性を備えたものにします。

于 2017-08-22T13:04:10.043 に答える
0

私も、明らかな理由もなく、Javaで散発的なUnknownHostExceptionsが発生しています。解決策は、数回再試行することです。これを行うDocumentBuilder.parseのラッパーは次のとおりです。

static Document DocumentBuilder_parse(DocumentBuilder b, String uri) throws SAXException, IOException {
  UnknownHostException lastException = null;
  for (int tries = 0; tries < 2; tries++) {
    try {
      return b.parse(uri);
    } catch (UnknownHostException e) {
      lastException = e;
      System.out.println("Retrying because of: " + e);
      continue;
    }
  }
  throw lastException;
}
于 2019-04-06T12:13:09.747 に答える