[48] 강력한 예외 보증을 준수하는 것이 좋다
다음 본문은 도서 이펙티브 C# (빌 와그너)에서 나오는 주제를 다룹니다. 1. 예외에 대한 보증 3가지 1-1) 기본 보증(basic guarantee) 특정 함수 내에서 발생한 예외가 이 함수를 빠져나오더라도 어떤 리소스도 누수되지 않으며, 모든 객체의 상태가 유효한 상태를 유지함을 의미. NET CLR은 기본 보증을 준수한다. 1-2) 강력한 보증(strong guarantee) 기본 보증에 더하여 예외 발생 시에도 프로그램의 상태가 변경되지 않음을 추가로 보증함. LINQ 쿼리를 사용하면 기본적으로 강력한 예외 보증 요건을 준수하게 된다. 함수형 프로그래밍 스타일을 사용할 수 없는 경우 방어적인 프로그램을 위해 기존 데이터의 복사본을 유지하고 작업이 완료된 후 값을 교환하는 방법을 사용하면 된다...