드디어 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#을 다음 강의 내용으로 생각 중인대 정확히 어떤걸 할 지는 아직 모르겠네요... 수고하셨습니다
'Basic > C/C++' 카테고리의 다른 글
[C++ 언어] 제 11 강 : 연산자 오버로딩(2) (0) | 2013.03.26 |
---|---|
[C++ 언어] 제 11 강 : 연산자 오버로딩(1) (0) | 2013.01.07 |
[C++ 언어] 제 10 강 : virtual 그리고 다중 상속 (0) | 2012.09.07 |
[C++ 언어] 제 9 강 : 상속과 다형성(2) (0) | 2012.07.05 |
[C++ 언어] 제 8 강 : 상속과 다형성 (0) | 2012.07.02 |
[C++ 언어] 제 7 강 : 상속 (0) | 2012.06.28 |
[C++ 언어] 제 6 강 : static, const 맴버 (2) | 2012.05.25 |
[C++ 언어] 제 5 강 : 복사 생성자 (2) | 2012.02.25 |
[C++ 언어] 제 4 강 : 클래스2 (0) | 2012.02.11 |
[C++ 언어] 제 3 강 : 클래스 (0) | 2012.02.07 |