KNOU/C++

[C++프로그래밍] 예외처리

bottlesun 2022. 12. 1. 18:01

예외(exception)란?

  • 프로그램 실행 도중에 발생 할 수 있는 비정상적인 사건
  • → 비정상인 데이터, 자원의 부족 등
  • 예외 상황에 대한 적절한 대비를 하지 않으면 프로그램이 안정적으로 실행되지 않는 문제가 일어날 수 있음

예외처리(exception handling)

  • 프로그램 실행 중 예외가 발생하였을때를 대비해 분기처리하는 것

예외처리에 따른 자원 관리 문제

스마트 포인터의 활용

  • unique_ptr : 할당된 메모리를 한 개의 포인터만 가리킬 수 있음
  • shared_ptr : 할당된 메모리를 여러 개의 포인터로 가리킬 수 있음
  • vector 사용 가능

noexcept 함수 지정

→ 함수가 예외를 일으키지 않음을 지정

template <typename T>
T max(const vector<T>& v) noexcept {
	auto p = v.begin();
	T m = *p ++;
	for(; p != v.end(); p ++)
		if (m < *p) m = *p;
	return m;
}
728x90