У меня две функции. функция main вызывает функцию submain. Функция submain содержит блок try-catch и возвращает некоторое значение.
Если «submain» выполняется успешно, он возвращает некоторое значение, которое я покажу конечному пользователю напрямую.
Если я получу исключение, я должен подготовить одно удобное для пользователя сообщение и распечатать его. Но для этого мне нужно знать, является ли возвращаемое значение исключением.
Как я могу проверить это возвращаемое значение в исключении или действительном результате?
Here is my pseudo code:
def submain():
try:
result = call to external API
return result
excepion, e:
_logger(e)
def main(value):
for x in value:
submain()
# if return is exception then break loop and give msg to end user.
Взгляните на раздел Best Practices: except clause
в этот ответ. Вы можете перехватить исключение на более низком уровне, выполнить некоторую необходимую работу, а затем повторно поднять его для следующего верхнего уровня, чтобы поймать и обработать его снова, если это необходимо.
@markkeven: Добавлен псевдокод.
@Ankit 1) Псевдокод не квалифицируется как MCVE; предоставьте актуальный код. 2) Исключения не возвращаются, они возникают. 3) Ваше требование в значительной степени покрыто упомянутым разделом ответа, который я связал. Пожалуйста, приложите усилия и попытайтесь понять это. Не стесняйтесь обращаться за разъяснениями, если это необходимо.
Если вы хотите обработать (попробовать поймать) исключение в функции main, я думаю, вам следует выбросить его из функции submain с ее контекстом. Если вы проглотите исключение в функции submain, основная функция не сможет узнать об этом без некоторых уловок.
Не могли бы вы поставить свой код?