try catch ブロックは高価なので、できれば避けるべきだというアドバイスを聞いたことがあります。
私の質問は、具体的には .NET プラットフォームに関するものです: try ブロックはなぜ高価なのですか?
回答の要約:
この問題には明らかに 2 つの陣営があります。try ブロックは高価であると言う陣営と、「たぶんほんの少し」という陣営です。
try ブロックが高価であると言う人は、通常、コール スタックを巻き戻すことの「コストが高い」と述べています。個人的には、特に例外ハンドラがここに保存される方法について読んだ後では、その議論には納得できません。
Jon Skeet は、「たぶんほんの少し」の陣営に属しており、例外とパフォーマンスに関する 2 つの記事を書いています。
私が非常に興味深いと思った記事が 1 つあります。その記事では、try ブロックの「その他の」パフォーマンスへの影響 (必ずしもメモリや CPU の消費とは限りません) について説明していました。Peter Ritchie は、try ブロック内のコードが最適化されていないことを発見したと述べています。彼の調査結果については、こちらで読むことができます。
最後に、CLR に例外を実装した人物によるこの問題に関するブログ エントリがあります。ここで Chris Brumme の記事をご覧ください。