본문 바로가기

Study/C++

[C++] Exception

예외처리

  • if를 사용하면 쉽겠지만, C++에는 별도의 예외처리 메커니즘이 존재한다.
  1. try: 예외를 발견
  2. catch: 예외를 잡기
  3. throw: 예외를 던지기
  • try 블록은 예외발생에 대한 검사의 범위를 지정할 때 사용한다. 즉, try 블럭 내에서 예외가 발생하면 C++의 예외처리 메커니즘에 의해 처리된다.
  • catch 블록은 try에서 발생한 예외를 처리하는 코드가 담기는 영역으로, 형태가 반환형이 없는 함수와 유사하다.
  • catch 블록은 try블록 뒤에 이어서 등장하며, try에서 발생한 예외는 이곳 catch에서 처리된다. 즉, try와 catch는 하나의 문장이다.
  • 만일 catch의 매개변수로 catch(...)을 한다면 전달되는 모든 예외를 받겠다는 뜻이다.
  • throw는 예외 발생 시 발생을 알린다.
try
{
	if(num2 == 0)
    	throw num2;
        .	.	.
}
catch(int expn)
{
	// 예외처리 코드
}

스택 풀기

  • 예외처리의 책임은 호출된 함수가 책임진다. 만일, 예외가 처리되지 않아서 함수를 호출한 영역으로 예외 데이터가 전달되는 현상을 가리켜 '스택풀기'라고 한다.

  • 자료형이 일치하지 않아도, 예외 데이터는 전달된다.

'Study > C++' 카테고리의 다른 글

Smart Pointer  (0) 2024.10.20
[C++] Header File  (0) 2023.10.22
[C++] Template  (0) 2023.10.15
[C++] Operator Overloading part.2  (0) 2023.10.15
[C++] Operator Overloading  (0) 2023.10.13