catch使用條件運算式重寫以下塊中代碼的正確方法是什么?如果支持!?
try
{
return await _client.GetStreamAsync(_uri);
}
catch
{
if (IsConnected)
throw;
else
throw new IOException();
}
C# 編譯器不喜歡以下內容
IsConnected ? throw : new IOException();
請注意,重新拋出捕獲的例外,如下所示,違反了CA2200
try
{
return await _client.GetStreamAsync(_uri);
}
catch (Exception ex)
{
throw IsConnected ? throw ex : new IOException();
}
uj5u.com熱心網友回復:
你的第一個例子很好。throw;將重新拋出例外,使堆疊跟蹤保持原樣。作為替代方案,我建議在以下情況下有條件地捕獲例外IsConnected == false:
catch when (IsConnected)
{
throw new IOException();
}
您可以when在檔案中閱讀有關關鍵字的更多資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/389758.html
上一篇:如何將帶有if條件的嵌套for回圈轉換為.NetLinq?
下一篇:Python“條件”異步方法
