Ошибка типа не печатает оператор исключения, который я включил - PullRequest
0 голосов
/ 27 февраля 2019

Цель здесь - перехватить все ошибки, когда последовательность проверяется с помощью checked_f (seq).Я проверил эту программу, запустив checked_f ([]), checked_f ([1,2,3]) и т. Д. Программа отлавливает ошибки для каждого теста и отображает «carefree_f () вызвала известное исключение» за исключением этого теста checked_f ((1, 2), (2, 3)). Это выражение не выводит «carefree_f () вызвало известное исключение».

 def checked_f(seq):
        try:
            return carefree_f(seq)
        except TypeError:
            print('carefree_f() raised a known exception')
            return None
        except ZeroDivisionError:
            print('carefree_f() raised a known exception')
            return None
        except IndexError:
            print('enter code here carefree_f() raised a known exception')
            return None
        except AttributeError:
            print('carefree_f() raised a known exception')
            return None
    def carefree_f(seq):
      (u, v) = seq.pop()
      while seq:
        (x, y) = seq.pop()
        u += x
        v += y
      return u / v

1 Ответ

0 голосов
/ 27 февраля 2019

за исключением этого теста checked_f((1, 2), (2, 3))

В этом случае ошибка в вызывающем абоненте.

checked_f() определяется для принятия одного аргумента, новы передаете его два аргумента: (1,2), (2,3).

Следовательно, вызов недействителен, checked_f() фактически не вызывается, а код , вызывающий , вызываетисключение.

...