ㅗㅜㅑ 너무나도 바쁜 학기말이네요.
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
관계 이해하기
실습예제
선업 순서와 같은 구조 예제보면서 공부하기
'공부 > [2018] C++' 카테고리의 다른 글
[2018.12.11] C++ 프로그래밍2 및 실습 복습 예제 투척 (0) | 2018.12.17 |
---|---|
[2018.12.04] C++ 프로그래밍2 및 실습 복습(파일입출력) (0) | 2018.12.08 |
[2018.11.20] C++ 프로그래밍2 및 실습 복습(클래스 템플릿, 템플릿 특수화, 스마트 포인터) (0) | 2018.11.21 |
[2018.11.13] C++ 프로그래밍2 및 실습 복습(포인터와 참조자, 클래스 템플릿) (0) | 2018.11.15 |
[2018.11.06] C++ 프로그래밍2 및 실습 복습(상속, 업캐스팅, 다운캐스팅, 가상함수) (0) | 2018.11.06 |