ゼロによる整数除算が発生したときにMSVC 6スローとは何でしょうか?

StackOverflow https://stackoverflow.com/questions/1909967

  •  19-09-2019
  •  | 
  •  

質問

私は実験のビットをやっている、とゼロによる整数除算が発生したときに例外がスローされていることを発見しました。

#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プログラムであれば、あなたが同じ例外になるだろう。

他のヒント

この記事では、<のhref = "http://msdn.microsoft.com/en-us/library/aa298592(VS.60).aspxを使用してC ++例外に構造化例外を変換する方法を持っていると主張します"REL =" nofollowをnoreferrer "> _ set_se_translator の機能

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

結果は未定義である、あなたが使用することができます __try /エラー(構造化例外処理)をキャッチする__except をブロック。しかし、なぜ単にあなたの分割前のエラーをチェックしませんか?

MSVC6では、キャッチ(...)でそれをキャッチすることができますし、スローでそれを再スロー。あなたは例外を検出することはできませんので、しかし、あなたが何かをやって方がいいでしょうそのように入力します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top