3

私はC++で例外を学習していて、これを試していました。

int main(int argc, char* argv[]) {
    double *p_x;
    try {
        p_x = new double[100000000000000];
        delete p_x;
    } catch (bad_alloc& ex) {
        cout << "Memory not allocated !!\n";
    }
    return 0;
}

例外はキャッチされますが、このコードを実行すると他のものが出力されます。出力は次のようになります。

Memory not allocated !!
Test9(13814) malloc: *** mmap(size=800000000000000) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug

どういうわけかg++のバージョンに関連しているのか、OS Xに関連しているのかわかりません。つまり、プログラムは例外をキャッチしていますが、他のことは何ですか?

4

1 に答える 1