從here發出,我不確定異常處理。 MSDN顯示了第一種方式。第二個也可以嗎?它更短,應該產生相同的輸出。最佳做法異常處理
問題:我可以使用第二種方式而沒有任何副作用嗎?
try
{
string s = null;
ProcessString(s);
}
catch (ArgumentNullException e)
{
LogError(e.Message);
}
catch (Exception e)
{
LogError("Error");
}
或
try
{
string s = null;
ProcessString(s);
}
catch (Exception e)
{
LogError((e is ArgumentNullException) ? e.Message : "Error");
}
兩者在結果上或多或少都是相同的。但是你正在尋求最佳實踐。所以兩者都是相同的,因爲它們隱藏了表達式「Error」後面的信息。 – Ralf
如果我拋出SomeWirdException,該怎麼辦?只需在日誌中使用我的*水晶球*的記錄,以便了解哪裏出了問題...... –
@Toshi:用不同代碼實現相同的方式。 – Ralf