new 연산자에 의해서 발생하는 예외


- new 연산에 의한 메모리 공간의 할당이 실패하면 bad_alloc이라는 예외가 발생한다. 

bad_alloc은 헤더파일 <new> 에 선언된 예외 클래스로써 메모리 공간의 할당이 실패했음을 알리는 의도로 정의되었다.



위 예제에서 보이듯이 프로그래머가 정의하지 않아도 발생하는 예외도 있다. 






모든 예외를 처리하는 catch 블록



마지막 catch 블록에 덧붙여지는 경우가 많은데, 대신 catch의 매개변수 선언에서 보이듯이, 발생한 예외와 관련해서 그 어떠한 정보도 전달받을 수 없으며, 전달된 예외의 종류도 구분이 불가능하다. 







예외 던지기


- catch 블록에 전달된 예외는 다시 던져질 수 있다. 

그리고 이로 인해서 하나의 예외가 둘 이상의 catch블록에 의해서 처리되게 할 수 잇다. 




예외처리는 가급적 간결한 구조를 띠는게 좋다. 따라서 정말로 필요한 상황이 아니라면, 굳이 예외를 다시 던지기 위해서 노력할 필요는 없다. 


Posted by scii
: