The UnsupportedOperationException
is a common exception in Java that indicates an operation is not supported. This exception is typically thrown to indicate that the operation is not available or not implemented in the current context.
When is UnsupportedOperationException Thrown?
This exception is typically thrown in the following scenarios:
- Unsupported Operations: When an operation is invoked on an object, but that operation is not supported by the object.
- Unmodifiable Collections: When attempting to modify a collection that does not support modification.
Example Scenarios:
Unsupported Operation on Collections:
import java.util.*;
public class Main {
public static void main(String[] args) {
List<String> unmodifiableList = Collections.unmodifiableList(new ArrayList<>());
// Attempting to add an element to an unmodifiable list will throw UnsupportedOperationException
try {
unmodifiableList.add("Hello");
} catch (UnsupportedOperationException e) {
System.out.println("Unsupported operation: " + e.getMessage());
}
}
}
Output:
Unsupported operation: null
Unsupported Operation on Arrays:
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
String[] array = {"apple", "banana", "cherry"};
// Attempting to modify an array using Arrays.asList() and then adding an element
try {
Arrays.asList(array).add("date");
} catch (UnsupportedOperationException e) {
System.out.println("Unsupported operation: " + e.getMessage());
}
}
}
Output:
Unsupported operation: null
Unsupported Operation on String:
public class Main {
public static void main(String[] args) {
String str = "Java";
// Attempting to modify a String by trying to set a character at an index
try {
str.setCharAt(0, 'j'); // This will throw UnsupportedOperationException
} catch (UnsupportedOperationException e) {
System.out.println("Unsupported operation: " + e.getMessage());
}
}
}
Output:
Exception in thread "main" java.lang.UnsupportedOperationException
at java.base/java.lang.AbstractStringBuilder.setCharAt(Unknown Source)
at Main.main(Main.java:7)
Handling UnsupportedOperationException:
- Avoid Unsupported Operations: Before performing any operation, check whether it’s supported by the object or collection.
- Catch and Handle: Wrap the operation inside a try-catch block to catch the
UnsupportedOperationException
and handle it gracefully.
Conclusion:
Understanding UnsupportedOperationException
is crucial for Java developers, especially when dealing with collections and objects where certain operations might not be supported. By being aware of this exception and handling it appropriately, you can write more robust and error-resistant Java code.