공부/[2018] C++

[2018.11.27] C++ 프로그래밍2 및 실습 복습(예외처리)

창작꾼 븐틴이 2018. 12. 8. 16:41
728x90
반응형

ㅗㅜㅑ 너무나도 바쁜 학기말이네요.


11월27일 부분 복습을 지금 하다니... 후후


저에게 A는 없는 것 같네요.


B+....인가..킇...흑


일단 ㅇ예외처리 시작할게요.


예외

: 예상하지 못한 일 즉, 프로그램이 실행되는 동안에 발생하는 예기치 않은 에러를 의미


예외처리

: 프로그램을 사용하는 사용자 입장을 고려해서 C++ 프로그래머들은 미리 예상치 못한 예외가 발생할 경우 어떻게 대처할지에 대한 프로그램을 작성해두어야하는데 이를 예외처리라함.


try{    // 감시역할

  예외가 발생할 것 같은 코드

} catch(해당 Exception){ // 문제점을 보고하는 역할

  예외 처리를 위한 루틴 // 삐빅! 잘못된 입력입니다. 

}



프로그래머가 의도적으로 예외를 발생시키고자 할 때 -> throw 예외객체;



1. 예외 처리 기본

: try, throw, catch문을 중심으로 예외처리를 구성하는 방법


2.스택 풀기(재귀함수 같은~~)

: 예외 발생시 여러 함수로 인해 증가한 스택을 한 번에 정리할 수 있는 기능


3. 메모리 예외 처리

: 객체가 생성 혹은 소멸하는 과정에서 발생하는 예외를 다루는 방법


try-catch 문을 활용한 구조적 예외처리

-> 코드가 길수록 속도가 느리다. 


throw - 사용자 예외 // 누구와 같이? 어떤식으로?


catch 다중화


throw a;

throw b;

// 캐치할게 반드시 존재해야됨.


try{ 


}


catch{

구체적

}

catch{

추상적

}


// 범위가 좁은 쪽(구체적) -> 범위가 넓은 쪽(추상적) 이 순서대로 하기

//바뀌면 컴파일러가 에러



재귀함수와 관련된 스택 관련 내용 공부 더하기!


재귀 함수 중

100부터 내려가는 함수 진행중 93번째의 에러 -> 사라짐?

-> 뒤에 있는 94~100들이 남아있는 공간이 되버림

-> 작업종료를 못 받음

-> 호출중간문제(return X)

->갈 곳이 없다.


택이 쌓여있을 때 풀어야 함

-> 자기자신을 호출한대로 내려옴 -> 메모리공간 자연스럽게 해결


스택풀기 

: 예외 발생 시 스택 메모리를 한 번에 해제시키는 구조



catch(bad alloc &exp)

-> 메모리 할당 : 잘못 할당하는지 내가 감지해줄게요!


!!


try - catch

throw - catch

관계 이해하기


실습예제














선업 순서와 같은 구조 예제보면서 공부하기

728x90
반응형