hereからのものですが、例外処理についてはわかりません。 MSDNはフリーリストの方法を示しています。もう1つは大丈夫ですか?短く、同じ出力を生成する必要があります。ベストプラクティスの例外処理
質問:副作用なしに2番目の方法を使用できますか?
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");
}
結果はどちらも同等です。しかし、あなたはベストプラクティスを求めています。だから両方とも "エラー"という表現の背後にある情報を隠しているのでどちらも悪いです。 – Ralf
'SomeWeirdException'がスローされたらどうなりますか?ログに "* crystal ball *"を使って何が間違っているのかを理解するための "Error"レコードを記録するだけです... –
@Toshi:異なるコードで同じように実現します。 – Ralf