例外をキャッチし、トランザクションをロールバックしてから例外を再スローするコードがあります。
catch ( Exception exSys ) {
bqBusinessQuery.RollBackTransaction();
throw exSys ;
}
このコードを使用すると、VS Code 分析で次のような警告がスローされます
代わりに、例外が最初に発生したスタックの場所を保持するために、引数なしで 'throw' を使用してください。
コードを使用する場合
catch ( Exception exSys ) {
bqBusinessQuery.RollBackTransaction();
throw;
}
その後、警告が表示されます
変数「exSys」は宣言されていますが、使用されていません
この問題を解決するにはどうすればよいですか?
編集 この方法を試しましたが、うまくいきません。system.exception クラスには、内部例外とともに追加のメッセージが必要です。これを行うと、元の例外からのメッセージを上書きする新しいメッセージがスローされます。新しい例外を取得したくない、同じメッセージで同じ例外をスローしたい。
catch (System.Exception ex)
{
throw new System.Exception(ex);
}
編集
catch (System.Exception ex)
{
throw new System.Exception("Test",ex);
}
この方法を試しました。そして、を使用して手動で例外を発生させましたthrow new Exception("From inside");
。現在、ex.Message は「From inside」ではなく「Test」を返します。「内側から」というメッセージはそのままにしておきたい。この提案された変更により、どこでもエラー表示コードで問題が発生します。:/