整数の最大値(オーバーフロー)を超えると、最小値が割り当てられます。
例System.out.println(Integer.MAX_VALUE+1);
出力:-2147483648
ここで例外をスローするのではなく、プログラムは誤った値を返します。
この機能は、どのようにプログラマーやデザイナーに役立ちますか?オーバーフローまたはアンダーフローが発生したときにプログラムが例外をスローしない理由
-2
A
答えて
-1
これは、1回の算術演算のたびにオーバーフローをチェックする必要がないため、コードの実行速度が向上します。
0
Javaの元の実装者は、計算がオーバーフローを引き起こしたかどうかを確認する必要がないというオーバーヘッドを求めていたと思います。プログラム的にチェックすることができます。たとえば、How does Java handle integer underflows and overflows and how would you check for it?
伝統的なCとC++が整数を処理する方法であるため、先例があります。
関連する問題
- 1. int.MinValue%-1が原因でオーバーフロー例外が発生する理由
- 2. WiX light.exeが演算処理をスローするオーバーフロー例外が発生しました
- 3. 例外をチェックした後にプログラムが例外をスローする
- 4. JMS処理中にapachemq例外が発生しました
- 5. 例外が発生しましたjava.lang.UNIXProcess.forkAndExec
- 6. .NET例外が発生しました。
- 7. C#:例外を発生またはスローしますか?
- 8. Netty例外処理 - ハンドラが例外をスローした後、何を?
- 9. runMidlet.exeで未処理のWin32例外が発生しました
- 10. C++例外がスローされたときにデバッガのプログラムを中断します。
- 11. 例外が発生した後にプログラムをステップバックする - Visual Studio
- 12. mavenからjavaプログラムを実行しようとしているときに例外が発生しました
- 13. WebjobがAzureキューの処理ジョブを完了したときに404 Not Found例外が発生しました
- 14. 解析エラーが発生したときにスローするのに適切な例外はありますか?
- 15. C#HttpClient.SendAsync throw "URLのテスト時にエラーが発生しました"という例外が発生しました。
- 16. 例外が発生したときにスレッドを停止する
- 17. TRttiProperty.SetValue経由でオブジェクトのプロシージャを割り当てたときにEInvalidCast例外が発生しました
- 18. 例外が処理されなかった - 再スロー例外
- 19. Telnetが終了したときにBufferedReaderまたはSocketが例外をスローしない
- 20. 例外がスロー句と互換性がない理由は何ですか?
- 21. "リクエストの処理中に例外が発生しました。さらに、カスタムエラーページの実行中に別の例外が発生しました..."
- 22. 例外がスローされたときにサーブレットフィルタが機能しない
- 23. バックグラウンドワーカー(例外が発生したMVP)
- 24. 予期しない例外がスローされました:java.lang.reflect.InvocationTargetException
- 25. TriggerCompleteイベントが発生しない理由
- 26. LocalJumpError例外が発生したためにテストが失敗しました(Ruby)
- 27. 例外をスローしたり、ドメインイベントを発生させたりしますか?
- 28. valgrindの実行中に例外がスローされますが、プログラムが直接呼び出されたときに例外がスローされない
- 29. 処理されていない例外が発生したときにsys.exitfuncをスキップする方法
- 30. BackgroundWorkerを使用中に例外が発生しました
これは間違った値ではありません。絶対に正しいです - Javaの整数は32ビットの符号付きです.MAX値に1を加えると、最も低い値に戻ります。 .. http://stackoverflow.com/a/5131206/4252352 –
データタイプの観点から絶対に@MarkKeen。しかし、開発者が(int x = 3 * 1000000000のような)計算のためのコードを書くと、変数xに負の値を割り当てることは期待しません。なぜ私はそれを開発者の視点で間違った価値と言いますか。プロジェクトのこの問題に直面し、3%の数値を計算しました。私は、Javaが例外またはエラーを介して間違った結果を計算することはないと誤解していました。 –
これは、オーバーフローがうまくいくことをどのように好むかに関する単なる意見です:予期しない結果を出すのではなく、例外を投げる?これは疑問のない質問です。これはどのように動作するのか、あなたはすでにこれを知っているので、それに応じた作業、つまりコードのチェック/テスト/正しい変数の割り当て(int、longなど..)があります。私はそこには、すべての人が望んで期待している通りのプログラミング言語があるとは言えません... –