What I understand from the documentation is that UnsupportedEncodingException can only be thrown if I specify a wrong encoding as the second parameter to URLDecoder.decode(String, String) method. Is it so? I need to know cases where this exception can be thrown.
Basically, I have this code segment in one of my functions:
if (keyVal.length == 2) {
try {
value = URLDecoder.decode(
keyVal[1],
"UTF-8");
} catch (UnsupportedEncodingException e) {
// Will it ever be thrown?
}
}
Since I am explicitly mentioning "UTF-8", is there any way this exception can be thrown? Do I need to do anything in the catch block? Or, if my understanding is completely wrong, please let me know.
In your special case - no, it won't be thrown. Unless you execute your code in a Java runtime that does not support "UTF-8".
That's because of the odd choice to make
UnsupportedEncodingException
checked. No, it won't be thrown.I usually do as follows:
It cannot happen, unless there is something fundamentally broken in your JVM. But I think you should write this as:
The cost of doing this is a few bytes of code that will "never" be executed, and one String literal that will never be used. That a small price for the protecting against the possibility that you may have misread / misunderstood the javadocs (you haven't in this case ...) or that the specs might change (they won't in this case ...)