항목 13 : 발생한 예외는 참조자로 받아내자.
이유 1. 예외처리 중 객체의 유효범위(scope)를 벗어날수 있기 때문에 포인터로는 받을수 없다(있지만 복잡함) 2. 1번의 경우때문에 값을 복사 해서 넘기는 방법이 편하지만 효율적인 면에서 두번의 복사가 부담스러움 3. 2번의 경우는 슬라이스 문제(클래스 계통에 따른 정적복사는 값이 짤려 나갈 경우가 있음)가 도사리고 있음 구현 방법 1. try 에선 값으로 보내고 catch 에선 참조자(레퍼런스)로 받아 주면 된다. 코드 try { // Validation_error는 exception으로부터 파생 된 객체이다. 그러므로 임시 객체 생성된것을 전달함 if(유효성 검사 실패했을 경우) throw Validation_error(); 된것임 } catch (exception &ex) { // 처리 하고~..
책 정리/More Effective C++ 1판
2008. 5. 19. 02:10
최근댓글