Try-Catch
プログラムでブロックを使用するとC#/Java
、実行速度にどのような影響がありますか?
私は (Visual C# を使用して) データベース アプリを作成する開発プロセスにあり、エラーを引き起こす可能性のあるほとんどすべてのメソッドに try-catch ブロックを配置しています
が、そうすることで私の実行速度が低下するかどうか興味がありました。プログラムも?
速度に影響を与える他の要因があることは知っていますが、これはプログラムの速度を低下させますか?
Try-Catch
プログラムでブロックを使用するとC#/Java
、実行速度にどのような影響がありますか?
私は (Visual C# を使用して) データベース アプリを作成する開発プロセスにあり、エラーを引き起こす可能性のあるほとんどすべてのメソッドに try-catch ブロックを配置しています
が、そうすることで私の実行速度が低下するかどうか興味がありました。プログラムも?
速度に影響を与える他の要因があることは知っていますが、これはプログラムの速度を低下させますか?
通常、例外がスローされない限り、コードには影響しません。例外がスローされると、コストのかかる操作であるため、通常はアプリケーションの速度が低下します。ただし、ここには非常に興味深い議論があり、読んでおく必要があります。
Javaについてはわかりませんが、C#ではコストが非常に低いですが、これを行うロジックに疑問があります。私はヨーダ方式の方が好きです。するかしないか。お試しはありません。
catch ブロックに何をさせますか? ログに関心がある場合は、例外フィルター (VB.NET の CATCH WHEN) を使用して、例外が最初に発生したときに例外に関する情報をキャプチャし、リフレクションを使用してあらゆる種類のデータをログに記録できます。
try catch ブロックは、予期しない入力を取得してプログラムがエラーになった場合にのみ実行されます。それ以外の場合は、フラグを設定するために使用されます。そのため、実行時間や速度には影響しません。
未処理の例外と未処理の例外が原因でパフォーマンスが低下した場合に影響します。これを確認すると、 Tyr/Catch
が役立つ可能性があります。
たとえば、コンボボックスの選択されたインデックス変更イベントにコードを配置したとします
private void cmbMedium_SelectedIndexChanged(object sender, EventArgs e)
{
//Some Code
}
そして、DataSource または Add Items cmbMedium_SelectedIndexChanged
イベント トリガーを設定する
ときよりも、Form Load イベントでコンボボックスに DataSource または Add Items を設定しcmbMedium_SelectedIndexChanged
ます 。
private void cmbMedium_SelectedIndexChanged(object sender, EventArgs e)
{
Try
{
//Some Code
}
catach(Exception ex)
{}
}
このタイプのハンドルされていない例外よりもパフォーマンスが低下します
あなたのアプリはデータベース駆動型であるため、データベース呼び出しにかかる時間は、try/catch ブロックによってもたらされるパフォーマンスの低下を小さくする可能性が高いと言えます。try/catch があなたがやろうとしていることに対して適切な構成である場合は、必ずそうしてください。
はい、Try/Catch はパフォーマンスに影響します。詳細については、このリンクを確認してください。