There is no difference because URI.create delegates the call to the constructor. The only real difference is that URI.create(String) URISyntaxException the URISyntaxException which is the constructor of URISyntaxException (checked exception) is in IllegalArgumentException (unchecked exception), so if you don't want to deal with the checked exception, it's better to simply call the URI. create (String)
Here is a piece of code from the JDK:
public static URI create(String str) { try { return new URI(str); } catch (URISyntaxException x) { throw new IllegalArgumentException(x.getMessage(), x); } }
source share