항목 62 : 예외가 모듈의 경계를 넘어 전달되는 것을 막아라. ( Don’t allow exceptions to propagate across module boundaries. )
{ 책에선 이런 말을 했다. "이웃집 정원에 돌은 던져서는 안 된다".. ㅋ 그렇다면 돌에 비유되는 예외 : exception 는 무엇인가? 예외는 오류 객체이다. 여기서 말하는 모듈이란 무엇인가? 다른 컴파일러, 다른 운영체제에서 컴파일된 실행파일, DLL, so, a 등을 뜻한다. 이 모듈의 경계를 넘어서 예외가 절달되는 것을 왜 막아야 하는가? C++ 에선 예외 전달 방식의 표준을 정해 놓지 않았다. 그래서 컴파일러 마다 운영체제 마다 예외 전달 방식이 다르다. 그래서 서로 다른 모듈간에 예외를 교류시키는 코드가 들어갈 경우, 예견되지 못한 상태에 빠질 수 있다. 책에선 예외를 잡기 위해서 catch(...) 블록을 쳐야 하는 최소한의 부위를 알려 주지만, 모듈간의 예외를 교류를 사용 하지 않거나,..
책 정리/C++ Coding Standards : C++ 코딩의 정석
2009. 4. 11. 20:07
최근댓글