[[C++/자료구조]] try-catch를 이용한 stack 프로그램

이미지
준비중입니다.
※ 미리보기 이미지는 최대 20페이지까지만 지원합니다.
  • 분야
  • 등록일
  • 페이지/형식
  • 구매가격
  • 적립금
자료 다운로드  네이버 로그인
소개글
[[C++/자료구조]] try-catch를 이용한 stack 프로그램에 대한 자료입니다.
목차
Ⅰ. 프로그램 설계 구현에 관한 설명
1. 목적 프로그램
2. try-catch의 사용법 및 if-else문과의 비교
2. Stack의 pop, push 함수의 구현 방식
Ⅱ. 프로그램 소스
Ⅲ. 테스트 방법 및 실행결과
1. 테스트 데이터
2. 삽입 결과
3. 삭제 결과
Ⅳ. 느낀점 및 기타
본문내용
Ⅰ. 프로그램 설계 구현에 관한 설명
1. 목적 프로그램
Exception handling을 이용한 stack 프로그램을 구현한다. 스택 class는 pop, push 및 생성자, 파괴자를 제외한 어떠한 메소드도 사용하지 않는다.

2. try-catch의 사용법 및 if-else문과의 비교
스택을 구현하기 앞서 생각해야 할 점은 예외처리를 어떠한 방식으로 해줄 것인가이다. 스택의 정의에 의하면, 삽입되는 아이템은 스택의 상단으로만 들어가며, 주어진 공간을 모두 사용한 경우는 더 이상 삽입이 이루어지면 안된다. 또한 삭제를 수행할 때에도 삽입된 아이템이 없다면 삭제를 수행하면 안된다. 이러한 점은 스택의 상단부를 표시하는 변수 top의 현재위치를 이용한 예외처리로 해결할 수 있다.

이번 프로그램에서는 위와 같은 예외처리를 다른 함수를 이용하거나, if-else문을 이용하지 않고 해결해야 하는데, C++에서는 exception handling을 위한 try-catch를 제공하고 있다. try-catch는 그 결과에 있어서는 if-else문과 동일하지만, 동작에 있어서는 약간의 차이가 있다. 가장 큰 차이는 구문 수준에서 동작과 블록 수준에서의 동작이라고 할 수 있다. try와 같은 경우 지정된 에러가 발생하면 해당하는 블록을 종료하고 catch 블록으로 건너띄어 버린다. 그러나 if-else문의 경우는 구문만이 종료하므로 에러가 발생한 객체가 유지되어 그에 대한 참조가 발생하게 되는 문제를 발생시킨다. 하지만 try-catch의 경우는 블록 자체를 종료하므로 에러가 발생한 객체도 자연히 소멸하게 되는 것이다. 즉, try 블록 안에서 예외를 발생했을 수 있는 객체의 참조를 원천적으로 봉쇄하게 되어 결과적으로 if-else문에 비해 안전한 코드가 될 수 있는 것이다.

try-catch는 아래와 같은 방식으로 사용한다.
try {
//예외가 발생할 수 있는 구역
//만약에, 예외가 발생하면,
//catch 구역에 예외를 던져준다. throw 예외덩어리;
//예외를 던지고 나면, 그 밑에 코드는 실행하지 않고 뛰어넘는다.
}
catch(예외를 받아서) //던져진 예외덩어리랑 자료형이 같아야한다.
{
//예외가 발생했을 때에 대한 적절한 코딩을 해준다.
}
위에서 확인할 수 있듯이 예외를 던져주면, 그 아래의 코드는 실해되지 않고 블록이 종료된다는 점에서 if-else문 보다 안전성을 보장해줄 수 있는 것이다.