본문 바로가기
우테코 프리코스/프리코스 오픈미션

UnsupportedOperationException란?

by sloth365 2025. 11. 23.

UnsupportedOperationException 수행할 수 없는 작업을 했을 때 발생하는 에러다.

불변 컬렉션의 수정, 삭제, 추가 등 내부 데이터를 변경하려고 할 때 발생하는 에러다.

 

이 에러로 무엇을 할 수 있을까?

@DisplayName("미션을 깊은 복사로 수정할 수 없는지 테스트")
@Test
void isCorrectCreateMission() {
    List<String> fixedMission = missionMachine.getMission();

    assertThatThrownBy(() -> fixedMission.add("콩나물"))
            .isInstanceOf(UnsupportedOperationException.class);
}

나는 진짜 깊은 복사로 객체 내부를 수정할 수 없는지 궁금했다.

그 궁금증을 해결하기 위해 임의로 값 내부를 수정하도록 테스트 코드를 작성하고

UnsupportedOperationException이 발생하는지 확인해봤다.

 

테스트 결과는 성공이었고 올바르게 에러가 발생한다.

 

이로써 깊은 복사를 했다고 생각하지만 정말 내부 데이터에 접근해서 변경할 수 없는지

직접 확인해볼 수 있게 된다.