Expand Authors Top

If you have a few years of experience in the Java ecosystem and you’d like to share that with the community, have a look at our Contribution Guidelines.

Expanded Audience – Frontegg – Security (partner)
announcement - icon User management is very complex, when implemented properly. No surprise here.

Not having to roll all of that out manually, but instead integrating a mature, fully-fledged solution - yeah, that makes a lot of sense.
That's basically what Frontegg is - User Management for your application. It's focused on making your app scalable, secure and enjoyable for your users.
From signup to authentication, it supports simple scenarios all the way to complex and custom application logic.

Have a look:

>> Elegant User Management, Tailor-made for B2B SaaS

Java Top

Get started with Spring 5 and Spring Boot 2, through the Learn Spring course:


1. Introduction

In this tutorial, we'll learn the cause of UnknownHostException with an example. We'll also discuss possible ways of preventing and handling the exception.

2. When Is the Exception Thrown?

UnknownHostException indicates that the IP address of a hostname could not be determined. It can happen because of a typo in the hostname:

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

The above code throws an UnknownHostException since the misspelled locaihost doesn't point to any IP addresses.

Another possible reason for UnknownHostException is DNS propagation delay or DNS misconfiguration.

It might take up to 48 hours for a new DNS entry to be propagated all around the Internet.

3. How to Prevent It?

Preventing the exception from occurring in the first place is better than handling it afterward. A few tips to prevent the exception are:

  1. Double-check the hostname: Make sure there is no typo, and trim all whitespaces.
  2. Check the system's DNS settings: Make sure the DNS server is up and reachable, and if the hostname is new, wait for the DNS server to catch up.

4. How to Handle It?

UnknownHostException extends IOException, which is a checked exception. Similar to any other checked exception, we must either throw it or surround it with a try-catch block.

Let's handle the exception in our example:

try {
} catch (UnknownHostException e) {

It's a good practice to close the connection when UnknownHostException occurs. A lot of wasteful open connections can cause the application to run out of memory.

5. Conclusion

In this article, we learned what causes UnknownHostException, how to prevent it, and how to handle it.

As always, the code is available over on Github.

Java bottom

Get started with Spring 5 and Spring Boot 2, through the Learn Spring course:

Generic footer banner
Comments are closed on this article!