본문 바로가기
Basic/C/C++

[C++ 언어] 제 12 강 : 예외처리

by boxbop 2013. 8. 19.
반응형



 드디어 C++ 언어의 마지막 강의입니다. 사실 포스팅 할 내용은 많으나 도저히 못하겠어요... 이놈의 C++ 을 얼마나 끌었는지 모르겠네요... 복습개념이라 단기로 바짝해서 올려야되는대 그게 안되다보니 길어지도 지치고 ㅠㅠㅠㅠ 오늘은 예외처리에 대해서 공부하도록 할 건데요~ 짧게 마치도록 하겠습니다.


[예외 처리의 개념]


 예를 들어, int a 와 int b 라는 변수가 있다고 가정합시다. 실제 연산에서 a/b 라는 연산을 하여 출력값을 cout문으로 화면상에 출력을 한다고 가정했을때를 생각해보세요. 일반적인 경우는 컴파일에러 없이 무난하게 출력해 줄 겁니다. 하지만 b 의 값을 0으로 전달 받았다면 정상적으로 처리가 될까요? 당연히 오류가 발생하게 됩니다. 이미 중학교 수학시간에 분모는 0이 될 수 없음을 배웠습니다. 즉, b 라는 변수가 0이되는 상황이 바로 예외 상황이라고 할 수 있습니다. 따라서 if문을 사용하여 b의 값이 0이라면 사용자에게 입력값 오류라는 내용을 통보해주어야 하고 0이 아니라면 정상적으로 처리할 수 있게끔 코딩해줘야 한다는 말이죠~ 

 if문을 사용한 것은 이해를 돕기 위할 뿐 실제 코딩에서는 if문을 사용하지 않습니다. 기본적인 예외 처리 매커니즘인 try, catch, throw 라는 3개의 키워드를 사용합니다.


- try : 예외 발생에 대한 검사 범위를 설정할 때 사용합니다.

- catch : 예뢰를 처리하는 코드 블록을 선언할 때 사용합니다.

*** catch 블록은 항상 try블록 바로 뒤에 위치시켜주어야 합니다.

- throw : 예외 상황이 발생하였음을 알릴 때 사용합니다.


 즉, throw 문에 의해 던져지는 예외는 catch 블록에 의해 처리됩니다. 다음과 같이 말이죠.


try{

if(b==0)  throw b;

//정상코드 실행 부분

}

catch(int exception) {    

//예외 상황 처리 부분

}


 이해가 되셨나요~? 결코 어려운 내용은 아닐겁니다. 아주아주 기본적인 내용만 다루어봤는대요 대충 이런거구나~ 라고 하시고 넘어가시면 될 것 같습니다. 이걸로써 C++ 언어는 모두 끝이 났습니다! TCP/IP 나 C#을 다음 강의 내용으로 생각 중인대 정확히 어떤걸 할 지는 아직 모르겠네요... 수고하셨습니다



반응형