CreateDocument(string templatePath)
{
Document doc = OpenDocument(templatePath);
Picture pic = GetLogo();
AddLogo(doc, pic, templatePath);
}
AddLogo(Document doc, Picture logo, string templatePath)
{
Picture placeholder = doc.FindLogoPlaceholder();
if (placeholder.Size != logo.Size)
{
throw new ApplicationException(
String.Format("Invalid template {0}, logo size: {1}, required: {2}",
templatePath, placeholder.Size, logo.Size
));
}
}
Рассмотрим приведенный выше код в качестве примера, который я только что составил.
Обратите внимание, что единственная причина, по которой templatePath
передается в метод AddLogo
, заключается в упрощении генерации исключений.
У меня есть кое-что в моем коде сегодня, где я должен был сделать это, и это похоже на очень неприятный запах кода для меня. Но я не слишком знаком с шаблонами обработки исключений и не вижу лучшего способа сделать это.
Мне интересно, что вы думаете, и есть ли лучший способ справиться с такими ситуациями.