문제

나는 약간의 실험을 해왔으며 정수가 0으로 나눌 때 예외가 발생한다는 것을 발견했습니다.

#include <iostream>
#include <stdexcept>

using namespace std;


int main
(
    void 
)
{
    try
    {
        int x = 3;
        int y = 0;
        int z = x / y;
        cout << "Didn't throw or signal" << endl;
    }
    catch (std::exception &e)
    {
        cout << "Caught exception " << e.what() << endl;
    }

    return 0;
}

분명히 그것은 std :: 예외를 던지는 것이 아닙니다. 또 무엇을 던질 수 있습니까?

도움이 되었습니까?

해결책

C ++와 관련이없는 Windows 구조 예외입니다. C 프로그램 인 경우 동일한 예외를 얻을 수 있습니다.

다른 팁

이 기사는 구조화 된 예외를 _set_se_translator 기능.

http://www.codeproject.com/kb/cpp/seexception.aspx

결과는 정의되지 않았습니다. 사용할 수 있습니다 __try / __xcept 오류를 포착하려면 차단 (구조화 된 예외 처리). 그러나 부서 전에 오류를 확인하는 것이 단순히 왜 단순히 오류를 확인하지 않겠습니까?

MSVC6에서는 Catch (...)로 잡을 수 있고 던지면서 재검사 할 수 있습니다. 그러나 예외 유형을 그렇게 감지 할 수 없으므로 다른 일을하는 것이 좋습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top