Возврат исключения, заполненного функцией - PullRequest
0 голосов
/ 08 апреля 2020

Мой код такой:

try:
    function()
except:
    #Error

Код функции:

def function():
    try:
        #something
    except:
        #function error

Возможно ли как-то вернуть ошибку, возвращенную функцией, если она есть? А если нет, просто верните вместо #error.

Как-то так

    try:
        function()
    except:
        if #function error:
            #function error
        #error

1 Ответ

1 голос
/ 08 апреля 2020

Да, вы можете сделать это со следующим синтаксисом:

def function():
    try:
        #something
    except Exception as e:
        return e

Во внешнем коде, где вы вызываете функцию, вам не нужно иметь try, except, потому что функция возврат и Exception не повышение это. Вместо этого вы можете проверить, является ли возвращаемое значение функции экземпляром Exception, например:

result = function()
if isinstance(result, Exception):
    #handle error
else:
    #do whatever you want with result

В качестве альтернативы, вы можете просто позволить функции вызвать ошибку, если она возникает, и затем обработать ее. в вашем коде вызова, а не возвращать ошибку, например:

def function():
    #do whatever error-prone code

try:
    result = function()
    #do whatever you want with result
except Exception as e:
    #handle error
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...