{
책에선 이런 말을 했다. "이웃집 정원에 돌은 던져서는 안 된다".. ㅋ

그렇다면 돌에 비유되는 예외 : exception 는 무엇인가?
 예외는 오류 객체이다.

여기서 말하는 모듈이란 무엇인가?
 다른 컴파일러, 다른 운영체제에서 컴파일된 실행파일, DLL, so, a 등을 뜻한다.

이 모듈의 경계를 넘어서 예외가 절달되는 것을 왜 막아야 하는가?
 C++ 에선 예외 전달 방식의 표준을 정해 놓지 않았다. 그래서 컴파일러 마다 운영체제 마다 예외 전달 방식이 다르다. 그래서 서로 다른 모듈간에 예외를 교류시키는 코드가 들어갈 경우, 예견되지 못한 상태에 빠질 수 있다.

책에선 예외를 잡기 위해서 catch(...) 블록을 쳐야 하는 최소한의 부위를 알려 주지만, 모듈간의 예외를 교류를 사용 하지 않거나, 소스코드를 이용한 해당 플랫폼 재컴파일, 라이브러리 제작자가 제공하는 여러 플랫폼 라이브러리 등을 사용하면 문제 되지 않는다.

그러므로 패스!
 
}

'책 정리 > C++ Coding Standards : C++ 코딩의 정석' 카테고리의 다른 글

항목 76 : 표준적으로 vector를 사용하고, 그렇지 않다면 적절한 컨테이너를 선택하라. ( Use vector by default. Otherwise, choose an appropriate container. )  (0) 2009.04.12
항목 67 : 계획적이지 않고 일반적이지 않은 코드는 작성하지 말라. ( Don’t write unintentionally nongeneric code. )  (0) 2009.04.12
항목 66 : 함수 템플릿은 특화해서는 안된다. ( Don’t specialize function templates. )  (0) 2009.04.12
항목 64 : 정적, 동적인 다형성을 절적히 혼합하라. ( Blend static and dynamic polymorphism judiciously. )  (0) 2009.04.11
항목 63 : 모듈의 인터페이스 내에는 충분한 이식성을 갖춘 타입을 사용하라. ( Use sufficiently portable types in a module’s interface. )  (0) 2009.04.11
항목 62 : 예외가 모듈의 경계를 넘어 전달되는 것을 막아라. ( Don’t allow exceptions to propagate across module boundaries. )  (0) 2009.04.11
항목 61 : 헤더 파일 내에는 서로 연결된 엔티티를 정의해서는 안된다. ( Don’t define entities with linkage in a header file. )  (0) 2009.04.11
항목 60 : 서로 다른 모듈에서의 메모리 할당과 해지는 피하라. ( Avoid allocating and deallocating memory in different modules. )  (0) 2009.04.11
항목 59 : 헤더 파일 내에 또는 #include 앞에 네임스페이스 using을 써서는 안 된다. ( Don’t write namespace usings in a header file or before an #include. )  (0) 2009.04.08
항목 58 : 특별히 함께 작동하게끔 의도된 경우가 아니라면 타입과 함수는 분리된 네임스페이스에 넣어라. ( Keep types and functions in separate namespaces unless they’re specifically intended to work together. )  (0) 2009.04.08
항목 57 : 타입과 그의 비멤버 함수는 같은 네임스페이스 내에 넣어라. ( Keep a type and its nonmember function interface in the same namespace. )  (2) 2009.04.08
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기

댓글을 달아 주세요

">