본문 바로가기
대외활동/시스템프로그래밍

예외 처리

by hoshi03 2024. 7. 31.
#include <iostream>

using namespace std;

void f1(); void f2(); void f3();

class Test {
	int id;
public:
	Test(int n) {
		id = n;
		cout << "생성자 " << id << endl;
	}

	~Test() {
		cout << "소멸자 " << id << endl;
	}
};

void f1() {
	Test* p = new Test(1);
	f2();
	delete p;

}

void f2() {
	Test* p = new Test(2);
	f3();
	delete p;

}

void f3() {
	Test* p = new Test(2);
	throw 10;
	delete p;
}


int main() {
	try
	{
		f1();
	}
	catch (int x)
	{
		cout << "catch block" << endl;
	}

	cout << "main end";
}

 

위 코드를 실행하면 동적할당한 경우 메모리 해제가 잘 되지 않아 소멸자가 호출퇴지 않는다

 

'대외활동 > 시스템프로그래밍' 카테고리의 다른 글

modern c++  (0) 2024.07.31
스마트 포인터  (0) 2024.07.31
c++ 입출력 시스템  (0) 2024.07.30
람다식  (0) 2024.07.30
템플릿 & STL  (0) 2024.07.29