Я бы посоветовал не использовать механизм исключения для проверки аргументов, какими бы заманчивыми они ни были. Кодирование с исключениями в качестве условных выражений - это все равно, что сказать: «Сбой моего приложения, если я, как разработчик, не думаю обо всех плохих условиях, которые могут быть вызваны моими предоставленными аргументами. Возможно, использование исключений происходит не только вне вашего контроля, но и в Я не знаю, под контролем чего-то еще, например, ОС, аппаратного обеспечения или языка Python, было бы более логичным, но на практике я использую исключения, когда вы запрашиваете решение для.
Чтобы ответить на ваш вопрос, отчасти так же просто кодировать:
class MyObject(object):
def saveas(self, filename):
if not validate_filename(filename):
return False
...
абонент
if not myobject.saveas(filename): report_and_retry()
Возможно, не очень хороший ответ, просто о чем подумать.