예외처리
try - thow - catch 구조를 이용해라.
int main(){
try {
if (x) throw 1;
M1 실행문
}
catch (int e) {
M2 실행문
}
M3 실행문
}
x == true -> M2 - M3 순
x == false -> M1 -> M3 순으로 실행
인자의 타입과 일치하는 예외만 처리한다.
try {
int person =0;
...
if (persons == 0)
throw persons; // int 값을 던지는데
...
}
catch(char e) // catch는 char 타입으로 받으니까 안된다!
{
cout << "사람이 " << e << " 명 입니다. "<< endl;
}
여러 개의 catch block이 있을 수 있다. 그러나 수행되는 것은 한 개의 catch block뿐.
모든 타입의 예외를 잡고싶다면
catch(...) 을 이용하자.
int main(){
try{
if (x) throw 1;
if (y) throw ‘a’;
M1
}
catch (...){
M2
}
catch (char e){
M3
}
M4
}
if x == true, M2 -> M4
if x == false && y== true M2 -> M4 (M3 이 실행되는 게 아님!)
if x == false && y== false M1 -> M4
구체적인거 먼저 잡고, 일반적인걸 나중에 잡아라! 라는
범위가 작은 순에서 범위가 큰 순서로 잡으면 좋겠다! 라는!
상속도 됨.
catch의 경우 자식 클래스를 부모 클래스 위에 놔둬야 원하는 대로 코드가 작동함
'TIL > [C++ 프로그래밍} TIL' 카테고리의 다른 글
TIL (22.05.30) (0) | 2022.05.30 |
---|---|
TIL (22.05.25) (0) | 2022.05.25 |
TIL (22.05.18) (0) | 2022.05.18 |
TIL 22.05.11 (0) | 2022.05.11 |
TIL (22.04.18) (0) | 2022.04.18 |