次のコードがあります。
try
{
retval = axNTLXRemote.IsUnitPresent(_servers[0].IPAddress, 1, _servers[0].RemotePort, _servers[0].CommFailDelay * 1000);
}
catch (COMException ce)
{
throw ce;
}
これにより、取り除きたい次の警告が表示されます。
CA2200 : Microsoft.Usage : 'Connect()' は、キャッチされた例外を再スローし、引数として明示的に指定します。代わりに、例外が最初に発生したスタックの場所を保持するために、引数なしで 'throw' を使用してください。
私は次のtry/catch/throwとtry/catch(e)/throw eの違いを読んだことがあります。スタック トレースをリセットし、その関数から例外がスローされたかのように表示します。
警告を取り除く「throw ce」ではなく「throw」に変更したいだけです。
次のキャッチの違いは何ですか:
catch (COMException ce) { throw; }
と
catch (COMException) { throw; }
どうにかして ce 変数を使用したい場合、'COMException ce' だけが必要ですか?
また、「throw」または「throw ce」を実行すると、それを処理またはキャッチするのは呼び出し関数ですか?? 私はこれについて少し不明です。