ラーニング パスのどこかで、このコードのセクションに出くわしました。ここで、作成者が「using」ブロックを使用して「ts」オブジェクトを作成しているにもかかわらず、using ブロック内で try catch ブロックを使用し、catch セクションで Dispose メソッドを明示的に呼び出してオブジェクト「ts」を破棄するという観察結果が 1 つあります。 . 不要だと感じます。「オブジェクトのみを破棄する」必要がある場合、ここで試してキャッチする必要がある理由がわかりません。
私の質問:
ここで本当に try catch が必要ですか? この例では、どのような場合に役立ちますか?
「using」ブロックを使用する場合、この方法は正しいですか? GCプロセスのようにどのように反応しますか? そのオーバーヘッドの権利ですか?
どちらの質問も、初心者が理解できる方法で説明できれば幸いです。
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.RequiresNew))
{
try
{
ServiceReference1.Service1Client obj = new ServiceReference1.Service1Client();
obj.UpdateData();
ServiceReference2.Service1Client obj1 = new ServiceReference2.Service1Client();
obj1.UpdateData();
ts.Complete();
}
catch (Exception ex)
{
ts.Dispose();
}
}