방프리
21.09.27 Chapter5. 예외처리 (Item 48) 본문
Item 48: 강력한 예외 보증을 준수하는 것이 좋다.
해당 항목에서 총 3가지의 예외 보증을 소개한다. 각각 기본 보증, 강력한 보증, 예외 없음 보증이다.
첫 번째로 기본 보증은 특정 함수 내에서 발생한 예외가 이 함수를 빠져나오더라도
어떤 리소스도 누수되지 않으며, 모든 객체의 상태가 유요한 상태를 유지하는 것을 뜻한다.
NET CLR은 이 기본 보증을 준수하며 모든 기본 보증은 강력한 보증을 준수함으로써 해결이 가능하다.
두 번째로 강력한 보증이란 정의를 내리자면 다음과 같다.
- 방어적인 프로그램을 위해 수정할 데이터에 대한 복사본을 마련한다.
- 복사해둔 데이터를 수정한다. 수정 과정에서 예외가 발생할 수 있다.
- 수정된 복사본과 원본 데이터를 교환한다. 이 교환 작업은 예외를 일으켜서는 안 된다.
마지막으로 예외 없음 보장은 특정 메서드가 예외를 전혀 발생시키지 않으며, 항상 완벽하게 수행될 뿐
아니라 예외가 이 메서드 밖으로 전파되지 않을 것임을 보장하는 것이다.
다만 이러한 제약 때문에 한정된 루틴이나 메서드에서만 적용이 가능하다.
특히 가장 조심해야할 곳은 finalizer, Dispose(), when 절 등에서 가장 조심해야 한다.
'C# > Effective C#' 카테고리의 다른 글
21.10.01 Chapter5. 예외처리 (Item 50) (0) | 2021.10.01 |
---|---|
21.09.27 Chapter5. 예외처리 (Item 49) (0) | 2021.09.27 |
21.09.25 Chapter5. 예외처리 (Item 47) (0) | 2021.09.25 |
21.09.24 Chapter5. 예외처리 (Item 46) (0) | 2021.09.24 |
21.09.19 Chapter5. 예외처리 (Item 45) (0) | 2021.09.19 |
Comments