C++
예외처리 / try throw catch
khkg12
2023. 8. 9. 15:46
예외처리란 일반적이지 않은 경우에 대한 처리를 뜻한다.
예외처리에 가장 첫번째로 할일은 예외를 인지하는 것. (qa팀의 존재 이유)
1. 다양한 추론이나 테스트를 통해 예외를 인지한다.
2. 인지된 예외에 대해서 일반적인 경우와 별개의 처리를 한다.
// numB는 0이여선 안된다는 것을 인지했음.(예외 인지)
if를 통한 예외처리
if (numB != 0) {
cout << numA / numB << endl;
}
else {
cout << "0으로 나눌 수 없습니다." << endl;
}
try throw catch 를 이용한 예외처리
try {
if (aPtr == nullptr) { // 예외발생한부분
// string msg = "nullptr을 가르키고 있다.";
throw "nullptr을 가르키고 있다."; // 던전순간 catch로 바로이동
}
else {
cout << aPtr->GetNum() << endl;
}
}
catch (const char msg[]) { // throw string 형식을 잡음
cout << msg << endl;
}
catch (string msg) {
cout << msg << endl;
}
catch (int errorCode) { // int만 받아야됨, 자동캐스팅되지않음
cout << "int 캐치에서 잡힘" << endl;
cout << errorCode << endl;
}
catch (float errorCode) {
cout << "float 캐치에서 잡힘" << endl;
cout << errorCode << endl;
}