Вот вопрос, чтобы показать мой недостаток опыта: у меня есть метод DoSomething () , который выдает исключение, если ему не удается сделать это чисто. В случае неудачи я несколько раз пытаюсь использовать менее точный метод DoSomethingApproximately () в надежде найти достаточно хорошее решение; если это также не удается, я наконец вызываю DoSomethingInaccurateButGuaranteedToWork () . Все три метода принадлежат этому объекту.
Два вопроса: во-первых, приемлем ли этот (по общему признанию, уродливый) шаблон или есть более элегантный способ?
Во-вторых, как лучше всего отслеживать, сколько раз я вызывал DoSomethingApproximately () , учитывая, что он может вызвать исключение? В настоящее время я сохраняю переменную iNoOfAttempts в объекте и вкладываю блоки try ... это ужасно, и мне стыдно.