Обработка ошибок Python в вызываемых методах - PullRequest
0 голосов
/ 28 июня 2018

Я хотел бы продолжить мой цикл, если вызываемый метод выдает исключение. Это простой пример, мой реальный код довольно сложен и я не хочу помещать обработку ошибок во все вызываемые методы.

list_of_lists = [['hammerhead', 'great white', 'dogfish'],[0, 1, 2],[9.9, 8.8, 7.7]]

def parse(item):
    item / 1

for list in list_of_lists:
    for item in list:
        try:
            parse(item)
        except ValueError:
            break

Это вызывает исключение, как только оно попадает в метод разбора. Я надеялся, что есть способ, что он просто продолжит мой цикл. (внешняя петля)

1 Ответ

0 голосов
/ 28 июня 2018

В этом случае вы пытаетесь разделить строку на int, которое вызывает TypeError, а не ValueError, поэтому ваш код выдает ошибку. Если вы хотите перехватить все возможные ошибки, вы можете просто:

try:
    parse(item)
except:
    break

Я бы не рекомендовал это, так как в вашем случае, кажется, есть много сложных функций, которые могут вызывать много разных ошибок, вероятно, лучше не отлавливать все, так как вы можете пропустить важную ошибку. Я бы посоветовал вам просто несколько раз запустить код, чтобы выяснить все возможные ошибки и определить для каждого из них особую ловушку, просто чтобы быть уверенным, что не будет никакой не связанной ошибки, которую вы не ожидали

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...