ゼロ除算例外の処理
C の整数にはネイティブ例外サポートがありません。したがって、提供されているコード スニペットでは、
int i = 0; cin >> i; // Input might be zero try { i = 5/i; } catch (std::logic_error e) { cerr <p>入力がゼロの場合、例外がトリガーされるのではなく、未定義の動作が発生します。このようなシナリオを処理するには、チェックを実行して例外を明示的にスローする必要があります。</p><p>次のコードでは、intDivEx メソッドを使用してゼロ除算の例外を処理します。</p><pre class="brush:php;toolbar:false">#include <iostream> #include <stdexcept> inline int intDivEx(int numerator, int denominator) { if (denominator == 0) throw std::overflow_error("Divide by zero exception"); return numerator / denominator; } int main() { int i = 42; try { i = intDivEx(10, 0); } catch (std::overflow_error &e) { std::cout "; } std::cout "; } std::cout <p>このコード演算を実行する前にゼロ除算をチェックします。例外が発生した場合は、エラー メッセージが出力されます。それ以外の場合は、実行を継続します。</p></stdexcept></iostream>
以上がC でゼロ除算例外を適切に処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。