예외 처리  
 : 예외란 무엇인가? 예외란 일반적이지 않는 상황을 말하는 것이다. 에러가 아니라는 말이다. 이런 일반적이지 않은 프로그램의 흐름을 처리 하는것을 예외 처리 라고 한다. 

 Try, Catch, Throw  
 : 일단 예외를 처리 하려면, 그에 맞는 문법을 써야 할 것이다. 
  1. try  
  2. {    
  3.     //예외 발생 예상지역   
  4. }   
  5.   
  6. catch(처리되어야할 예외의 종류)   
  7. {   
  8.     //예외를 처리하는 코드가 존재할 위치   
  9. }  
 위는 try, catch 문이다. try에는 예외라 불릴 상황을 가진 문장을 집어 넣는 것이다. (try 문은 무조건 실행이 된다.) 처리되어야 할 예외의 종류를 받아 catch 문에서는 이 예외에 대한 처리를 해주는 것이다. (명시적으로 cout문을 이용해 예외가 발생했다고 처리해 주거나 한다)
  1. if ( 조건 )   
  2.     throw ex;  
 다음은 throw로 위와 같이, "조건에 합당하면 예외를 던진다" 예제 소스코드를 보면 이해가 더 쉬울 것이다.
  1. #include <iostream>   
  2. using namespace std;   
  3.   
  4. int main(void)   
  5. {   
  6.     int num;   
  7.   
  8.     cout<<"input number: ";   
  9.     cin>>num;   
  10.   
  11.     try{   
  12.         if(num>0)   
  13.             throw 10;  // int형 예외 전달.   
  14.         else  
  15.             throw 'm';  // char형 예외 전달.    
  16.     }   
  17.     catch(int exp){   
  18.         cout<<"int형 예외 발생"<<endl;   
  19.     }   
  20.     catch(char exp){   
  21.         cout<<"char형 예외 발생"<<endl;   
  22.     }   
  23.     return 0;   
  24. }  

 입력을 받는다고 가정하자. 이 입력받는 곳에는 숫자만 들어와야 하는데, 만약 문자가 들어 온다면 이 상황에서 문자가 들어온 것이 바로 예외 상황이다. 이런 예외 처리를 만약 문자형을 받으면 "예외를 던져(throw exception)" 그 예외에 해당하는 상황을 출력하는 간단한 예제이다. 여기에서 예외 전달을 위해 int 타입도 예외를 전달하는 모습을 보여주고 있다.
Posted by 모과이IT
,