아이템 76. 가능한 한 실패 원자적으로 만들라 - KwangtaekJung/book-effective-java GitHub Wiki
호출된 메서드가 실패하더라도 해당 객체는 메서드 호출 전 상태를 유지해야 한다.
- 이러한 특성을 실패 원자적(failure-atomic)이라고 한다.
메서드를 실패 원자적으로 만드는 방법
- 불변 객체로 설계한다.
- 가변 객체의 경우, 작업 수행에 앞서 매개 변수의 유효성을 검사한다.
- 실패할 가능성이 있는 모든 코드를 객체의 상태를 바꾸기 이전에 수행한다.
- 임시 복사본에서 작업한 후 완료되면 원래 객체와 교체한다.
- 작업 도중 발생하는 실패를 가로채는 복구 코드를 작성하여 작업 전 상태로 되돌린다.
- 자주 쓰이는 방법은 아님.