[解決済み】例外が発生しないのにtry-catchブロックを使うのは高くつく?
質問
例外をキャッチするのはコストがかかるということは知っています。しかし、例外がスローされない場合でも、Java で try-catch ブロックを使用することはコストがかかるのでしょうか?
Stack Overflowの質問と回答がありました。 なぜtryブロックは高価なのですか? のためですが、それは .NET .
解決方法は?
try
はほとんど出費がありません。を設定する作業をする代わりに
try
実行時には、コードのメタデータはコンパイル時に構造化されており、例外が発生すると、スタック上を移動して
try
ブロックが存在し、この例外をキャッチすることができます。素人目線では
try
はタダ同然かもしれません。実際にコストがかかるのは例外を投げることですが、何百、何千もの例外を投げるのでなければ、そのコストに気づくことはないでしょう。
try
には、いくつかの小さなコストが伴います。Java は
try
ブロックは、他の方法で行うことができます。しかし、Javaは例外が発生した場合、ソースコードに書かれたステートメントがある行まで順番に実行されたかのように、メソッドの実行を観察することも保証する必要があります。
なぜなら
try
ブロックでは、例外をスローすることができます (try ブロックの任意の行で!)。例外の中には非同期で投げられるものもあります。
stop
を Thread (これは非推奨) 上で実行し、それ以外にも OutOfMemoryError はほとんどどこでも起こりうる) で、しかもそれが捕捉され、その後同じメソッドでコードが実行し続けられるとなると、できる最適化についての推論が難しくなり、起こりにくくなるのです。(誰かがコンパイラをプログラムして、最適化について説明し、正しさを保証しなければならないでしょう。しかし、実際には、このようなことに気づくことはないでしょう。
関連
-
[解決済み] enumのordinalを使用するのは良い習慣ですか?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] JUnit 4のテストで、ある例外が投げられたことをどのように断言しますか?
-
[解決済み] Try-catchは私のコードをスピードアップさせるか?
-
[解決済み] Javaにおけるチェック済み例外とチェックされていない例外の理解
-
[解決済み] なぜすべてのブロックを "try"-"catch "で包んではいけないのですか?
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
-
[解決済み】C#で例外をキャッチして再スローする理由とは?
-
[解決済み】例外をスローしない場合、try/catchブロックはパフォーマンスを低下させるか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Javaで拡張子なしのファイル名を取得する方法は?
-
[解決済み] XX:MaxDirectMemorySizeの既定値
-
[解決済み] javaで部分クラスを実装する方法
-
[解決済み] Javaにおけるシンボリック参照
-
[解決済み] JDBC タイプの方言マッピングがありません。1111
-
[解決済み] 文字列の巻き方
-
[解決済み] IntegerからBigIntegerへの変換
-
[解決済み] Javaで正しいマイクロベンチマークを書くには?
-
[解決済み】例外をスローしない場合、try/catchブロックはパフォーマンスを低下させるか?
-
[解決済み】Exceptionを投げるとき、どの部分が高価なのですか?