C++ 예외 처리 - 전통적인 예외 처리

진경천·2023년 10월 29일
0

C++

목록 보기
63/90

어떠한 함수를 호출 했을 때 오류가 났을 시에 해야할 조치

강제 종료

std::abort();

exit(123);	// 정상 종료이지만 에러 코드를 반환함
return 123;	// 위와 같은 동작

오류 코드 검출

int main() {
	freopen("input.txt", "r", stdout);
	int result = printf("abc");

	cout << result << endl;	// 출력문과 글자수 출력
	bool r = cout.fail();
	cout << r << endl;
}
  • 실행 결과

    printf()는 오류가 일어날 시에 -1을 출력
    cout.fail()을 통해 cout의 오류를 검출 가능하다.
    cout.faio() = true 일 시에 오류 발생

#pragma warning(disable: 4996)
#include <iostream>
#include <cstdio>

using std::cout, std::endl;

int errorCode = 0;
double divide(double d, double v) {
	if (v == 0) {
		errorCode = 0;
		return 0;
	}
	return d / v;
}

int main() {
	double result = divide(10, 0);

	cout << result << endl;
}
  • 실행 결과

    0

    errorCode를 전역 변수로 설정하여 오류 검출
    전역 변수를 사용하기 때문에 권장되지 않는 사용법

profile
어중이떠중이

0개의 댓글