2

関数を呼び出すコードで、関数で発生した例外を処理する必要があります。私が書く場合:

            try
            {
                // Code than may raise an exception
            }
            catch
            {
                throw;
            }

例外はコールスタックで返されます。代わりに次のように記述して、同じ結果を得ることができますか? try catchこの場合に を使用する理由はありますか?

             // Code that may raise an exception
4

2 に答える 2

4

あなたが提示したシナリオでは、例外をキャッチして再スローする唯一の理由は、ロギングやクリーンアップなど、catch ブロックで何か他のことを行っている場合です。それ以外の場合は、まったくノーオペレーションです。

ところで、この構文が必要な場合はthrow、 ではなくを使用していることに感謝します。throw e前者はコールスタックを保持します。後者はそうではありません。

于 2013-08-31T23:41:38.760 に答える
1

その場合に使用する理由はありませんtry/catch

情報をログに記録したり、例外をより高いレベルのものにカプセル化している場合は、try/catchが示されます。

于 2013-08-31T23:41:46.493 に答える