ここで言及されていないことが 1 つあります。
if-else ステートメントを使用すると、コードが実行されるたびに、少なくとも 1 つの条件が実行されることが保証されます。if-else-elseif がどのように機能するかは誰もが知っていると思いますが、明確にするために... ステートメントのif部分は常に評価され、false の場合は次のelse-ifが評価され、というように続くまで続きます。 elseだけが評価されます。
したがって、if-else ステートメントを使用すると、パフォーマンスに影響します。それほど大きくはありませんが (ほとんどの場合)、評価の実行には CPU 時間がかかります。
try-catch ステートメントを使用してください。間違っている場合は訂正してください。必要になるまで実行時に考慮しないでください (つまり、例外がスローされます)。したがって、コードを try-catch でラップするだけでは、例外が実際にキャッチされるまでパフォーマンスに影響しません。
また、パフォーマンスヒットの原因はキャッチではなく、スローです。
重要なポイントの 1 つは、try-catch ステートメントを条件付きロジックに使用してはならないということです。それらは、設計された目的、つまり例外処理のためにのみ使用する必要があります!
例外の処理方法がわかっている場合は、例外をキャッチすることが不可欠です。例外を適切に処理する方法がない場合は、それを手放すべきです。チェーンのさらに上のコードには、それを処理するためのより良い方法がある場合があります。
通常、アプリケーションの絶対最上位レベルに例外ハンドラーを配置して、ユーザーに表示される前に例外をキャッチすることをお勧めします。ASP.NET では、global.asax の Application_Error イベントでこれを行うことができます。他の言語/環境では、それが何であれ、メインループでそうします。
ただし、常にキャッチされないままにしておくのが最善の例外がいくつかあることに注意してください。場合によっては、例外が発生すると、アプリケーションの状態が著しく損なわれ、信頼できないことを示していることがあります。唯一の安全な方法は、強制終了して再起動することです。