본문 바로가기
{Programing}/C.C++

c/c++ 예외처리

by 탱타로케이 2020. 1. 21.

예상치 못한 오류를 안전하게 처리해서 코드가 안전하게 동작할수 있도록 하는 기법.

 

try, throw, catch 문

 

try 문 : 예외가 발생할 만한 코드 블록

throw 문 : try 블록에서 발생한 오류에 대한 정보 전달 던짐.

catch 문 : 던져진 정보를 담아 처리할 내용을 담은 코드 블록.

 

순서대로 

 

try {

 

예외가 발생할만한 코드

throw something;

}

 

catch (value something)

{

예외 처리 코드.

}

 

 try 문에서 예외가 발생하지 않으면 throw, catch 무시.

 

try 문에서 예외가 터지면 throw를 통해 가까운 catch 문부터 검사.

없으면 바깥쪽 try문과 쌍을 이루는 catch 문 검사.

제일 바깥쪽까지 반복 후, 없으면 terminate() 함수 호출.

 

적절한 catch 문 찾으면 throw로 전달된 값이 전달되고 catch문 내부 코드 실행.

 

제일 바깥쪽 catch문 다음으로 이동.

 

 

Exception 클래스 

 

예외처리용 클래스를 제공한다.

exception 헤더를 포함하면 사용가능하고.

 

추가적으로 

stdexcept 헤더를 포함하면 

표준 예외 클래스를 사용할 수 있다.

 

exception 클래스를 최상위 슈퍼클래스로 하는 서브 예외 클래스들이 많다.

크게 

로직 오류와 런타임 오류가 있다.

 

set_terminate()함수를 이용해 처리되지 않은 예외에 대한 처리함수를 등록할 수 있다.

'{Programing} > C.C++' 카테고리의 다른 글

c/c++ 연산자 오버로딩  (0) 2020.01.22
c/c++ 복사생성자 & 복사 대입연산자  (0) 2020.01.22
c/c++ virtual, interface, abstract class  (0) 2020.01.21
c/c++ 상속(2)  (0) 2020.01.21
c/c++ 상속(1)  (0) 2020.01.21

댓글