次の C++ コードでは、ゼロによる ain 整数除算が発生することはありません。
// gradedUnits and totalGrades are both of type int
if (gradedUnits == 0) {
return 0;
} else {
return totalGrades/gradedUnits; //call stack points to this line
}
ただし、Visual Studio で次のエラーが表示されます。
DSA_asgn1.exe の 0x001712c0 で未処理の例外: 0xC0000094: ゼロによる整数除算。
また、スタック トレースは、コードに示されている行を指しています。
更新: ここでばかげたことをしていたのかもしれません。VSにデバッグブレークポイントに注意を向けさせようとしている間に、ソリューションを再構築しましたが、例外はもう発生していません。新しいセッションを開始していると思ったときに、デバッグ セッションの途中で停止して再開していた可能性が高いようです。
回答ありがとうございます。私の質問は解決済みであり、実際には私が思っていたものではなかったので、ここで質問を削除することは適切でしょうか?
VSは、ゼロ除算が可能かどうかをチェックせずに、整数除算でこれを行うだけのようです。コードが例外をスローできない場合でも、この例外をキャッチする必要がありますか? もしそうなら、これについて最善の方法は何ですか?
これは、C++ で VS 2005/2008 を指定する割り当て用です。必要以上に物事を複雑にしたくないのですが、同時に、可能な限り適切に物事を行いたいと思っています。