0
我們有一個異常庫,預計可用於多種解決方案。我們有這個庫中包含的幾個自定義異常類型。排列消息時的異常消息最佳實踐
出現的問題:如果我們想要排列在這些例外中使用的錯誤消息,那麼完成此操作的最佳實踐方法是什麼?對於這個問題,假設解決方案中有3或4種方法想要拋出這些類型的異常。
讓我們舉個例子:
public class CustomException : Exception
{
// You can assume that we've covered the other default constructors for exceptions
public CustomException(string message)
: base(message)
{
}
}
我們想更換工作:
public void DoWork()
{
Guid id = Guid.NewGuid();
// ...
throw new CustomException(string.Format("The guid was: {0}.", id));
}
我們目前的想法
1 /定義接受一個GUID定義錯誤消息的新構造:
const string GuidMessageTemplate = "The guid was: {0}.";
public CustomException(Guid id)
: base(string.format(GuidMessageTemplate, id))
{
}
public void DoWork()
{
Guid id = Guid.NewGuid();
// ...
throw new CustomException(id);
}
2允許每個解決方案def例外生成器類/方法實例化一致例外
public class ExceptionBuilder()
{
const string GuidMessageTemplate = "The guid was: {0}.";
public CustomException BuildCustomException(Guid id)
{
return new CustomException(string.format(GuidMessageTemplate, id));
}
}
public void DoWork()
{
Guid id = Guid.NewGuid();
// ...
var exception = BuildCustomException(id);
throw exception;
}
3 /另一種選擇?
我們把這個解決方案,特別是與濫用異常的能力的說法。 –