UnsupportedOperationException เป็นคลาสย่อยของ RuntimeException โยนเมื่อ อ็อปเปอเรชันไม่รองรับ เป็นส่วนหนึ่งของ Java Collections Framework โยนโดยเกือบทุก Concrete Collections: List, Queue, Set, Map
ไวยากรณ์
public class UnsupportedOperationException extends RuntimeException
ตัวอย่าง: กรณีที่เกิด Exception
import java.util.*;
public class UnsupportedOperationExceptionTest {
public static void main(String[] args) {
List<Character> aList = new ArrayList<>();
aList.add('a');
aList.add('b');
// สร้าง Unmodifiable View
List<Character> newList = Collections.unmodifiableList(aList);
// พยายามเพิ่ม - จะโยน Exception
newList.add('c');
}
}
ผลลัพธ์
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.Collections$UnmodifiableCollection.add(Collections.java:1055)
at UnsupportedOperationExceptionTest.main(UnsupportedOperationExceptionTest.java:9)
วิธีหลีกเลี่ยง: ใช้ Object ของ Collection ต้นฉบับ (aList) สำหรับแก้ไข ไม่ใช่ View (newList) ที่ unmodifiable