Правильно ли я перехватываю исключение?

class Fruit:
    def isexist(self,objid):
        try:
           find_or_fail(objid)
        except ModelNotFound:
            return False
        else: 
            return True
  • Вопрос задан
  • 197 просмотров
Пригласить эксперта
Ответы на вопрос 2
chupasaurus
@chupasaurus
Сею рефлекторное, злое, временное
Нет, else нужен для выполнения операций, которые не попали под предыдущие условия в try/except, в вашем случае просто добавьте в блок try return True, исключение будет поймано раньше чем вывод выполнится.
Ответ написан
@maxfox
Else выполняется, если исключение не возникло. При этом, если в блоке else возникло исключение, оно не будет обработано except. Т.е. else в связке с try/excpet нужен, если вы хотите в случае успешного выполнения кода в блоке try выполнить что-то еще и при этом не обрабатывать исключение.
В вашем случае else не нужен, т.к. return True не может вызвать исключения ModelNotFound. В данном конкретном случае вы можете поместить return True как в блок try, так и после блока except, результат будет одинаковый. На мой взгляд, логичнее в try.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы