java.net.UnknownHostException: Hostname tidak valid untuk Server

1. Perkenalan

Dalam tutorial ini, kita akan mempelajari penyebab UnknownHostException dengan sebuah contoh. Kami juga akan membahas kemungkinan cara mencegah dan menangani pengecualian.

2. Kapan Pengecualian Dilempar?

UnknownHostException menunjukkan bahwa alamat IP dari nama host tidak dapat ditentukan. Ini bisa terjadi karena salah ketik di nama host:

String hostname = "//locaihost"; URL url = new URL(hostname); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.getResponseCode();

Kode di atas melempar UnknownHostException sejak salah eja locaihost tidak menunjuk pada satu alamat IP.

Alasan lain yang mungkin untuk UnknownHostException adalah penundaan propagasi DNS atau kesalahan konfigurasi DNS.

Mungkin diperlukan waktu hingga 48 jam untuk entri DNS baru disebarkan ke seluruh Internet.

3. Bagaimana Mencegahnya?

Mencegah pengecualian terjadi sejak awal lebih baik daripada menanganinya setelahnya. Beberapa tip untuk mencegah pengecualian adalah:

  1. Periksa ulang nama host: Pastikan tidak ada kesalahan ketik, dan pangkas semua spasi.
  2. Periksa pengaturan DNS sistem: Pastikan server DNS aktif dan dapat dijangkau, dan jika nama host baru, tunggu server DNS menyusul.

4. Bagaimana Menanganinya?

UnknownHostException memperluas IOException , yang merupakan pengecualian yang dicentang. Mirip dengan pengecualian yang dicentang lainnya, kita harus membuangnya atau mengelilinginya dengan blok coba-tangkap .

Mari kita tangani pengecualian dalam contoh kita:

try { con.getResponseCode(); } catch (UnknownHostException e) { con.disconnect(); }

Merupakan praktik yang baik untuk menutup koneksi saat UnknownHostException terjadi. Banyak koneksi terbuka yang tidak berguna dapat menyebabkan aplikasi kehabisan memori.

5. Kesimpulan

Pada artikel ini, kita mempelajari apa yang menyebabkan UnknownHostException , cara mencegahnya, dan cara menanganinya.

Seperti biasa, kode tersedia di Github.