-1

私はC#デスクトップアプリケーションで作業しており
、そのコードの実行時にcatchブロックに分類されるようなコードを作成しました

try
{

        //come code

}
catch(exception ex)
{

}
  //some code 2

catch ブロック'some code 2' の外側でコードを実行したいので、例外を処理していません。

ただし、例外を処理しないと、実行のパフォーマンスが低下します

したがって、これに対する解決策を変更してください

4

3 に答える 3

1

例外のスローとキャッチはパフォーマンスに影響を与えますが、それはコードの最大の問題ではありません。このような例外を飲み込むことは悪い習慣であり、 s をキャッチすることもお勧めできませんSystem.Exception。一般的に言えば、合理的に処理できる例外のみをキャッチし、それ以外はすべて発生させる必要があります。try例外が発生するかどうかに関係なく、ブロックの後にコードを実行する場合は、finallyブロックの使用を検討してください。例えば:

try
{
    // some code
}
finally
{
    // some code 2
}

または、コードを再編成して、try-catchまたはtry-finallyをまったく使用しないようにすることもできます。

AppDomain.UnhandledExceptionロギングなどのために、おそらくイベントを使用して、アプリのグローバル例外ハンドラーを作成することができます。

于 2013-09-22T16:01:06.207 に答える
1

制御フローに例外を使用しないように、コードを再構築する必要があります。

例外は、例外的なもののために予約する必要があります。例外のスローとキャッチにはパフォーマンスのオーバーヘッドがあり、これは避けられません。オーバーヘッドの多くは、スタック トレース、呼び出しサイト、および例外に入れるその他の情報をキャプチャすることから発生します。

また、デバッグ モードでは、例外の処理にかかる時間が大幅に長くなることにも注意してください。(したがって、リリースモードでまだ試していない場合は、最初に試してみてください-ただし、この回答の最初の行のアドバイスは引き続き適用されます)。

MSDN の例外とパフォーマンスも参照してください。この前の質問と回答にも良いリソースがあります: C# の例外のコストはどれくらいですか? .

于 2013-09-22T15:52:12.520 に答える