#include<exception>intmain(){std::stringmyCatName="Coco";try{charch=myCatName.at(5);// <- 익셉션 발생}catch(conststd::out_of_range&e){// 범위 이탈 발생std::cerr<<"out of range : "<<e.what()<<std::endl;}catch(conststd::exception&e){// 위에서 캐치하지 못한 익셉션 전부 캐치std::cerr<<"exception : "<<e.what()<<std::endl;}return0;}
그런데 굳이 익셉션으로 처리해야 하느냐?
1
2
3
4
5
6
7
8
std::stringmyCatName="Coco";constsize_tINDEX=5;if(INDEX<myCatName.size()){charch=myCatName.at(INDEX);// 이렇게 if문으로 처리해도 되지요}
2. 예외 발생 사례 2 : 0으로 나누기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
intnumber1=0;intnumber2=0;std::cin>>number1>>number2;try{intresult=number1/number2;// <- 익셉션이 발생하긴 하나 C++의 예외가 아님// 운영체제가 해주는 익셉션...// '정의되어 있는 상태가 아님' 이라고 뜬다}catch(conststd::exception&e){std::cerr<<"exception: "<<e.what()<<std::endnl;}
댓글남기기