ゼロで除算するようなシステム例外が実際にアプリケーションに何か「スロー」するかどうかは不思議でした。何とかこれをデフォルトで捕まえることは可能でしょうか?C++でデフォルトの例外をキャッチ
は、私たちはヌル除数をチェックし、例外をスローするカスタム除算は、fnを定義することができます意味が、ちょうどこれはOSに依存します。この例外はデフォルト
//say I do this
int i;
try
{
i /= 0; // My compiler (gcc) did warn abt the divide by zero :-)
}
catch (...)
{
// Can we get here for this case?
}
ここで重要なのは、C++標準に関する限り、0で割ることは未定義の動作であるということです。これは、個々の実装が好きなことをすることができることを意味します。信号でプロセスを中断させ、例外をスローし、上司に電話をかけ、トフィーをコード化することはできません。 –
Windowsの場合、SetUnhandledExceptionFilterを使用してハンドラをインストールすると、C++例外をスローすることができます。 std :: exceptionから派生したものです。 –
Visual C++で/ EHaを0にするなどの設定をする必要があります。 http://msdn.microsoft.com/en-us/library/1deeycx5%28VS.80%29.aspx –