Как перехватить исключение и исправить код, а затем снова запустить функцию? - PullRequest
0 голосов
/ 25 мая 2018
global r
global t

def divide(a,b):
    try:
        c=a/b
        print(c)
        return c
    except:
       b+=1000
       r=b
       raise Exception

def main():
    try:
        r=0
        t=1000
        divide(t,r)
    except:
        print('except block')
        divide(t,r)

main()

Как изменить значение переменной r, а затем снова вызвать функцию из блока исключений, перехватив его как исключение?

1 Ответ

0 голосов
/ 25 мая 2018

Ничего не делать в divide.В его задачу не входит исправлять неверные входные параметры и перехватывать возникающие исключения.Вызывающий может делать эти вещи.

def divide(a,b):
    c=a/b
    print(c)
    return c

Вместо этого выполните исправление в main:

def main():
    try:
        r=0
        t=1000
        divide(t,r)
    except ZeroDivisionError:
        print('except block')
        r+=1000
        divide(t,r)
...