java와 같은 그런 정교한 예외처리는 아닌거 같아서 조금 실망
물론..cpp가 java보다 거의 20년 전 꺼라는걸 감안하면...
아무튼.. try{} 안에 문제점이 될 부분에서
문제점에 대한 if문을 하고 throw를 통해 (물론 타입별로 catch 문을 중첩가능함) 제어의 흐름을 통일 시킨다.
과거에는 수 많은 return문으로 구현하거나
에러발생시 끝부분으로 goto 하는걸 문법적으로 깔끔하게 구현한 셈
스탠다드 라이브러리로 존재한다.
물론..cpp가 java보다 거의 20년 전 꺼라는걸 감안하면...
아무튼.. try{} 안에 문제점이 될 부분에서
문제점에 대한 if문을 하고 throw를 통해 (물론 타입별로 catch 문을 중첩가능함) 제어의 흐름을 통일 시킨다.
과거에는 수 많은 return문으로 구현하거나
에러발생시 끝부분으로 goto 하는걸 문법적으로 깔끔하게 구현한 셈
#include < iostream > using namespace std; int main(int argc, char **argv) { int a = 12; int b = 1; double c = 0; try { if(b == 0) throw(b); else throw(c); } catch(int e) { cout << "divide by zero. throw " << e << endl; } catch(double e) { cout << "good job. throw " << e << endl; } return 0; }
스탠다드 라이브러리로 존재한다.
#include <exception> [링크 : http://www.cplusplus.com/reference/exception/exception/ ] |
'Programming > C++ STL' 카테고리의 다른 글
c -> cpp 추가사항 (0) | 2014.03.10 |
---|---|
오버로딩 / 오버라이딩 (0) | 2014.03.10 |
연산자 오버로딩 (0) | 2014.03.04 |
c++ explicit (0) | 2014.02.28 |
c++ class / const member variable & function (0) | 2014.02.28 |