У меня есть класс, методы которого требуют, чтобы определенное поле класса существовало правильно. Это поле класса устанавливается в конструкторе, и оно читается из файла конфигурации, и оно может или не может получить правильные данные из этого файла конфигурации. Если данные неверны, они будут содержать неверные данные в поле класса, а метод класса выдаст исключение.
Если это произойдет, я хочу снова запустить метод, но с другим вызовом конструктора класса. Это то, что разумно обрабатывается в попытке: поймать? Потому что метод МОЖЕТ вызвать то же исключение даже с правильным полем класса. Итак, я хочу, чтобы при первом вызове метода получалось исключение, а затем метод запускался снова. Но на втором этапе, если выбрасывается исключение, я хочу, чтобы оно распространялось. Итак:
try:
MyClass().method()
except MyException:
MyClass(True).method()
Есть ли очевидный недостаток в этом? Или лучший способ сделать это без использования счетчиков, флагов или других некрасивых вспомогательных объектов?